;==============================================================
; Intel Asm
;==============================================================
         .486
         .model flat, stdcall
         option casemap :none
         include \masm32\include\windows.inc
         include \masm32\include\masm32.inc
         include \masm32\include\kernel32.inc
         include \masm32\macros\macros.asm

         includelib \masm32\lib\masm32.lib
         includelib \masm32\lib\kernel32.lib

;==============================================================
         .data
Txt db ?, 0

;==============================================================
; Entry point:
         .code
start:
         FINIT
         PUSH  EBP
         MOV   EBP,  ESP
         SUB   ESP,  20
         ; Let Ti1_35 = 
         ; Integer 1
         MOV   EAX,  1
         MOV   [EBP-4],  EAX
         ; Let Ti2_36 = 
         ; Integer 2
         MOV   EAX,  2
         MOV   [EBP-8],  EAX
         ; Let Ti3_37 = 
         ; Integer 3
         MOV   EAX,  3
         MOV   [EBP-12],  EAX
         ; Let Ti4_38 = 
         ; Integer 4
         MOV   EAX,  4
         MOV   [EBP-16],  EAX
         ; Let Ti5_34 = 
         ; Apply direct f_29
         PUSH  dword ptr [EBP-16]
         PUSH  dword ptr [EBP-12]
         PUSH  dword ptr [EBP-8]
         PUSH  dword ptr [EBP-4]
         CALL  f_29
         ADD   ESP,  16
         MOV   [EBP-20],  EAX
         ; Apply direct min_caml_print_int
         PUSH  dword ptr [EBP-20]
         CALL  min_caml_print_int
         ADD   ESP,  4
         MOV   ESP,  EBP
         POP   EBP
         PUSH  0
         CALL  ExitProcess

;==============================================================
; Function f_29:

f_29 proc
         PUSH  EBP
         MOV   EBP,  ESP
         SUB   ESP,  180
         ; Let e_39 = 
         ; Add a_30 + b_31
         MOV   EAX,  [EBP+8]
         ADD   EAX,  [EBP+12]
         MOV   [EBP-4],  EAX
         ; Let f_40 = 
         ; Add a_30 + c_32
         MOV   EAX,  [EBP+8]
         ADD   EAX,  [EBP+16]
         MOV   [EBP-8],  EAX
         ; Let g_41 = 
         ; Add a_30 + d_33
         MOV   EAX,  [EBP+8]
         ADD   EAX,  [EBP+20]
         MOV   [EBP-12],  EAX
         ; Let h_42 = 
         ; Add b_31 + c_32
         MOV   EAX,  [EBP+12]
         ADD   EAX,  [EBP+16]
         MOV   [EBP-16],  EAX
         ; Let i_43 = 
         ; Add b_31 + d_33
         MOV   EAX,  [EBP+12]
         ADD   EAX,  [EBP+20]
         MOV   [EBP-20],  EAX
         ; Let j_44 = 
         ; Add c_32 + d_33
         MOV   EAX,  [EBP+16]
         ADD   EAX,  [EBP+20]
         MOV   [EBP-24],  EAX
         ; Let k_45 = 
         ; Add e_39 + f_40
         MOV   EAX,  [EBP-4]
         ADD   EAX,  [EBP-8]
         MOV   [EBP-28],  EAX
         ; Let l_46 = 
         ; Add e_39 + g_41
         MOV   EAX,  [EBP-4]
         ADD   EAX,  [EBP-12]
         MOV   [EBP-32],  EAX
         ; Let m_47 = 
         ; Add e_39 + h_42
         MOV   EAX,  [EBP-4]
         ADD   EAX,  [EBP-16]
         MOV   [EBP-36],  EAX
         ; Let n_48 = 
         ; Add e_39 + i_43
         MOV   EAX,  [EBP-4]
         ADD   EAX,  [EBP-20]
         MOV   [EBP-40],  EAX
         ; Let o_49 = 
         ; Add e_39 + j_44
         MOV   EAX,  [EBP-4]
         ADD   EAX,  [EBP-24]
         MOV   [EBP-44],  EAX
         ; Let p_50 = 
         ; Add f_40 + g_41
         MOV   EAX,  [EBP-8]
         ADD   EAX,  [EBP-12]
         MOV   [EBP-48],  EAX
         ; Let q_51 = 
         ; Add f_40 + h_42
         MOV   EAX,  [EBP-8]
         ADD   EAX,  [EBP-16]
         MOV   [EBP-52],  EAX
         ; Let r_52 = 
         ; Add f_40 + i_43
         MOV   EAX,  [EBP-8]
         ADD   EAX,  [EBP-20]
         MOV   [EBP-56],  EAX
         ; Let s_53 = 
         ; Add f_40 + j_44
         MOV   EAX,  [EBP-8]
         ADD   EAX,  [EBP-24]
         MOV   [EBP-60],  EAX
         ; Let t_54 = 
         ; Add g_41 + h_42
         MOV   EAX,  [EBP-12]
         ADD   EAX,  [EBP-16]
         MOV   [EBP-64],  EAX
         ; Let u_55 = 
         ; Add g_41 + i_43
         MOV   EAX,  [EBP-12]
         ADD   EAX,  [EBP-20]
         MOV   [EBP-68],  EAX
         ; Let v_56 = 
         ; Add g_41 + j_44
         MOV   EAX,  [EBP-12]
         ADD   EAX,  [EBP-24]
         MOV   [EBP-72],  EAX
         ; Let w_57 = 
         ; Add h_42 + i_43
         MOV   EAX,  [EBP-16]
         ADD   EAX,  [EBP-20]
         MOV   [EBP-76],  EAX
         ; Let x_58 = 
         ; Add h_42 + j_44
         MOV   EAX,  [EBP-16]
         ADD   EAX,  [EBP-24]
         MOV   [EBP-80],  EAX
         ; Let y_59 = 
         ; Add i_43 + j_44
         MOV   EAX,  [EBP-20]
         ADD   EAX,  [EBP-24]
         MOV   [EBP-84],  EAX
         ; Let Ti6_83 = 
         ; Add a_30 + b_31
         MOV   EAX,  [EBP+8]
         ADD   EAX,  [EBP+12]
         MOV   [EBP-88],  EAX
         ; Let Ti7_82 = 
         ; Add Ti6_83 + c_32
         MOV   EAX,  [EBP-88]
         ADD   EAX,  [EBP+16]
         MOV   [EBP-92],  EAX
         ; Let Ti8_81 = 
         ; Add Ti7_82 + d_33
         MOV   EAX,  [EBP-92]
         ADD   EAX,  [EBP+20]
         MOV   [EBP-96],  EAX
         ; Let Ti9_80 = 
         ; Add Ti8_81 + e_39
         MOV   EAX,  [EBP-96]
         ADD   EAX,  [EBP-4]
         MOV   [EBP-100],  EAX
         ; Let Ti10_79 = 
         ; Add Ti9_80 + f_40
         MOV   EAX,  [EBP-100]
         ADD   EAX,  [EBP-8]
         MOV   [EBP-104],  EAX
         ; Let Ti11_78 = 
         ; Add Ti10_79 + g_41
         MOV   EAX,  [EBP-104]
         ADD   EAX,  [EBP-12]
         MOV   [EBP-108],  EAX
         ; Let Ti12_77 = 
         ; Add Ti11_78 + h_42
         MOV   EAX,  [EBP-108]
         ADD   EAX,  [EBP-16]
         MOV   [EBP-112],  EAX
         ; Let Ti13_76 = 
         ; Add Ti12_77 + i_43
         MOV   EAX,  [EBP-112]
         ADD   EAX,  [EBP-20]
         MOV   [EBP-116],  EAX
         ; Let Ti14_75 = 
         ; Add Ti13_76 + j_44
         MOV   EAX,  [EBP-116]
         ADD   EAX,  [EBP-24]
         MOV   [EBP-120],  EAX
         ; Let Ti15_74 = 
         ; Add Ti14_75 + k_45
         MOV   EAX,  [EBP-120]
         ADD   EAX,  [EBP-28]
         MOV   [EBP-124],  EAX
         ; Let Ti16_73 = 
         ; Add Ti15_74 + l_46
         MOV   EAX,  [EBP-124]
         ADD   EAX,  [EBP-32]
         MOV   [EBP-128],  EAX
         ; Let Ti17_72 = 
         ; Add Ti16_73 + m_47
         MOV   EAX,  [EBP-128]
         ADD   EAX,  [EBP-36]
         MOV   [EBP-132],  EAX
         ; Let Ti18_71 = 
         ; Add Ti17_72 + n_48
         MOV   EAX,  [EBP-132]
         ADD   EAX,  [EBP-40]
         MOV   [EBP-136],  EAX
         ; Let Ti19_70 = 
         ; Add Ti18_71 + o_49
         MOV   EAX,  [EBP-136]
         ADD   EAX,  [EBP-44]
         MOV   [EBP-140],  EAX
         ; Let Ti20_69 = 
         ; Add Ti19_70 + p_50
         MOV   EAX,  [EBP-140]
         ADD   EAX,  [EBP-48]
         MOV   [EBP-144],  EAX
         ; Let Ti21_68 = 
         ; Add Ti20_69 + q_51
         MOV   EAX,  [EBP-144]
         ADD   EAX,  [EBP-52]
         MOV   [EBP-148],  EAX
         ; Let Ti22_67 = 
         ; Add Ti21_68 + r_52
         MOV   EAX,  [EBP-148]
         ADD   EAX,  [EBP-56]
         MOV   [EBP-152],  EAX
         ; Let Ti23_66 = 
         ; Add Ti22_67 + s_53
         MOV   EAX,  [EBP-152]
         ADD   EAX,  [EBP-60]
         MOV   [EBP-156],  EAX
         ; Let Ti24_65 = 
         ; Add Ti23_66 + t_54
         MOV   EAX,  [EBP-156]
         ADD   EAX,  [EBP-64]
         MOV   [EBP-160],  EAX
         ; Let Ti25_64 = 
         ; Add Ti24_65 + u_55
         MOV   EAX,  [EBP-160]
         ADD   EAX,  [EBP-68]
         MOV   [EBP-164],  EAX
         ; Let Ti26_63 = 
         ; Add Ti25_64 + v_56
         MOV   EAX,  [EBP-164]
         ADD   EAX,  [EBP-72]
         MOV   [EBP-168],  EAX
         ; Let Ti27_62 = 
         ; Add Ti26_63 + w_57
         MOV   EAX,  [EBP-168]
         ADD   EAX,  [EBP-76]
         MOV   [EBP-172],  EAX
         ; Let Ti28_61 = 
         ; Add Ti27_62 + x_58
         MOV   EAX,  [EBP-172]
         ADD   EAX,  [EBP-80]
         MOV   [EBP-176],  EAX
         ; Let z_60 = 
         ; Add Ti28_61 + y_59
         MOV   EAX,  [EBP-176]
         ADD   EAX,  [EBP-84]
         MOV   [EBP-180],  EAX
         ; Neg z_60
         MOV   EAX,  [EBP-180]
         NEG   EAX
         MOV   ESP,  EBP
         POP   EBP
         RET
f_29 endp

;==============================================================
; need to copy min_caml_intel.asm from min-caml directory to output directoty
include min_caml_intel.asm

END start

;==============================================================

