Function at 0x40f4e0
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x944
mov eax, dword [section..data]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [0x4311f8]
push ebx
push esi
push edi
mov ecx, 0xd
mov esi, str.Must_specify_raw_data_type_before_input_file_name__n
lea edi, [ebp - 0x8c]
rep movsd dword es:[edi], dword [esi]
mov ecx, 0x11
mov esi, str.Must_specify_raw_data_type_and_input_file_name_before_variable_names__n
lea edi, [ebp - 0xd8]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
xor ebx, ebx
movsb byte es:[edi], byte [esi]
cmp byte [eax], bl
je 0x41064e
mov edi, 0x428c30
mov dword [0x42fdec], ebx
mov dword [0x430cb8], 0xffffffff
call fcn.00403b20
push eax
mov dword [ebp - 0x924], eax
lea eax, [ebp - 0x8d8]
push 0x800
push eax
call dword [sym.imp.MSVCR100.dll_fgets]
add esp, 0xc
push 0x208
call dword [sym.imp.MSVCR100.dll_malloc]
mov esi, eax
add esp, 4
cmp esi, ebx
jne 0x40f59e
push str._Out_of_memory._Please_run_a_smaller_problem_n
call dword [sym.imp.MSVCR100.dll_printf]
add esp, 4
call fcn.00404240
inc dword [0x42fba4]
je 0x40f596
call fcn.00403eb0
push 3
call dword [sym.imp.MSVCR100.dll_exit]
push 0x208
push ebx
push esi
call sub.MSVCR100.dll_memset
mov eax, dword [0x42fb48]
lea ecx, [esi + 0x104]
mov dword [0x43020c], ecx
mov dword [0x430208], esi
mov byte [esi], bl
mov edx, dword [0x43020c]
mov byte [edx], bl
mov dword [eax + 4], ebx
mov dword [eax + 0x3c], ebx
mov dword [0x430c90], ebx
mov ebx, str.HMLM_MDM_CREATION_TEMPLATE
add esp, 0xc
lea ecx, [ebx + 1]
mov al, byte [ebx]
inc ebx
test al, al
jne 0x40f5e2
sub ebx, ecx
push ebx
lea eax, [ebp - 0x8d8]
push str.HMLM_MDM_CREATION_TEMPLATE
push eax
call dword [sym.imp.MSVCR100.dll__strnicmp]
add esp, 0xc
test eax, eax
je 0x40f64e
mov esi, dword [sym.imp.MSVCR100.dll_printf]
push str._s_does_not_seem_to_be_a__s_mdm_template_file__n
call esi
mov ecx, dword [ebp - 0x924]
add esp, 4
push ecx
call dword [sym.imp.MSVCR100.dll_fclose]
add esp, 4
push 0x427955
push 0x428e48
call esi
add esp, 8
call fcn.00404240
inc dword [0x42fba4]
je 0x40f646
call fcn.00403eb0
push 0x64
call dword [sym.imp.MSVCR100.dll_exit]
mov edx, dword [ebp - 0x924]
push edx
lea eax, [ebp - 0x8d8]
push 0x800
push eax
call dword [sym.imp.MSVCR100.dll_fgets]
add esp, 0xc
test eax, eax
je 0x410643
mov ecx, dword [ebp - 0x924]
push ecx
call dword [sym.imp.MSVCR100.dll__ftelli64]
add esp, 4
lea edx, [ebp - 0x8d8]
push 0xa
push edx
call dword [sym.imp.MSVCR100.dll_strchr]
add esp, 8
test eax, eax
je 0x40f6af
mov byte [eax], 0
dec eax
cmp byte [eax], 0
je 0x40f6af
cmp byte [eax], 0x20
jne 0x40f6af
mov byte [eax], 0
dec eax
cmp byte [eax], 0
jne 0x40f6a1
lea eax, [ebp - 0x8d8]
mov dword [ebp - 0x93c], eax
mov al, byte [ebp - 0x8d8]
test al, al
je case.0x410136.4
cmp al, 0x20
je case.0x410136.4
cmp al, 0x23
je case.0x410136.4
mov esi, dword [sym.imp.MSVCR100.dll__strnicmp]
push 0xb
lea ecx, [ebp - 0x8d8]
push str.RAWDATTYPE:
push ecx
call esi
add esp, 0xc
test eax, eax
jne 0x40f826
push 5
lea edx, [ebp - 0x8cd]
push str.ASCII
push edx
xor edi, edi
call esi
add esp, 0xc
test eax, eax
jne 0x40f73b
mov edi, 0x800
mov dword [0x430cb8], 2
call fcn.00404140
mov dword [0x4300e8], eax
add eax, 0x400
mov dword [0x4300ec], eax
mov edi, 0x801
push 6
lea eax, [ebp - 0x8cd]
push str.SYSTAT
push eax
call esi
add esp, 0xc
test eax, eax
jne 0x40f75d
mov dword [0x430cb8], 3
inc edi
push 3
lea ecx, [ebp - 0x8cd]
push 0x428c80
push ecx
call esi
add esp, 0xc
test eax, eax
jne 0x40f77f
mov dword [0x430cb8], 5
inc edi
push 4
lea edx, [ebp - 0x8cd]
push str.SPSS
push edx
call esi
add esp, 0xc
test eax, eax
jne 0x40f7a1
mov dword [0x430cb8], 6
inc edi
push 4
lea eax, [ebp - 0x8cd]
push str.STATA
push eax
call esi
add esp, 0xc
test eax, eax
jne 0x40f7c3
mov dword [0x430cb8], 8
inc edi
push 5
lea ecx, [ebp - 0x8cd]
push str.OTHER
push ecx
call esi
add esp, 0xc
test eax, eax
jne 0x40f7e5
mov dword [0x430cb8], 9
inc edi
test edi, edi
jne case.0x410136.4
mov esi, dword [sym.imp.MSVCR100.dll_printf]
push str.Invalid_raw_data_type._n
call esi
add esp, 4
push 0x427955
push 0x428e48
call esi
add esp, 8
call fcn.00404240
inc dword [0x42fba4]
je 0x40f81e
call fcn.00403eb0
push 0x64
call dword [sym.imp.MSVCR100.dll_exit]
push 8
lea edx, [ebp - 0x8d8]
push str.MDMNAME:
push edx
call esi
add esp, 0xc
test eax, eax
jne 0x40f86f
cmp byte [ebp - 0x8d0], 0x20
lea eax, [ebp - 0x8d0]
jne 0x40f856
lea esp, [esp]
inc eax
cmp byte [eax], 0x20
je 0x40f850
mov edx, 0x430d60
sub edx, eax
lea ecx, [ecx]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x40f860
jmp case.0x410136.4
push 9
lea eax, [ebp - 0x8d8]
push str.NUML1VAR:
push eax
call esi
add esp, 0xc
test eax, eax
je 0x4105bf
push 9
lea ecx, [ebp - 0x8d8]
push str.NUML2VAR:
push ecx
call esi
add esp, 0xc
test eax, eax
je 0x4105bf
push 9
lea edx, [ebp - 0x8d8]
push str.L1FORMAT:
push edx
call esi
add esp, 0xc
test eax, eax
je 0x410578
push 9
lea eax, [ebp - 0x8d8]
push str.L2FORMAT:
push eax
call esi
add esp, 0xc
test eax, eax
je 0x410578
push 8
lea ecx, [ebp - 0x8d8]
push str.L1FNAME:
push ecx
call esi
add esp, 0xc
test eax, eax
je 0x4100de
push 8
lea edx, [ebp - 0x8d8]
push str.L2FNAME:
push edx
call esi
add esp, 0xc
test eax, eax
je 0x4100de
push 0x10
lea eax, [ebp - 0x8d8]
push str.BEGIN_INDICVARS
push eax
call esi
add esp, 0xc
test eax, eax
jne 0x40fb5b
mov eax, dword [0x430cb8]
cmp eax, 2
jne 0x40f942
mov dword [0x430a60], 0
jmp 0x40f94b
cmp eax, 0xffffffff
je 0x410699
mov ecx, dword [ebp - 0x91c]
mov edx, dword [ecx*4 + 0x430208]
cmp byte [edx], 0
je 0x410699
mov eax, dword [0x42fb48]
mov edi, dword [eax + 4]
add edi, edi
add edi, edi
call fcn.00404140
mov ecx, dword [0x42fb48]
mov edi, dword [ecx + 4]
imul edi, edi, 0xd
mov dword [0x42fdf0], eax
call fcn.00404140
mov ecx, dword [0x42fb48]
cmp dword [ecx + 4], 0
mov dword [0x430c10], eax
jle 0x40f9a9
mov ecx, dword [ecx + 4]
lea esp, [esp]
mov byte [eax], 0
add eax, 0xd
dec ecx
jne 0x40f9a0
mov eax, dword [0x428d1c]
mov edx, dword [str.END_INDICVARS]
mov dword [ebp - 0x54], eax
mov ax, word [0x428d24]
mov dword [ebp - 0x58], edx
mov edx, dword [0x428d20]
mov word [ebp - 0x4c], ax
mov eax, dword [0x430cb8]
xor ecx, ecx
sub eax, 3
mov dword [ebp - 0x50], edx
mov dl, byte [0x428d26]
mov dword [ebp - 0x91c], ecx
mov byte [ebp - 0x4a], dl
je 0x40fa0b
sub eax, 2
je 0x40f9fd
dec eax
jne 0x40fa20
mov eax, dword [0x430b94]
mov dword [ebp - 0x92c], eax
jmp 0x40fa20
mov edx, dword [0x430ca4]
mov dword [ebp - 0x934], edx
jmp 0x40fa20
mov eax, dword [0x42fd44]
mov dword [ebp - 0x930], 0x42fd40
mov dword [ebp - 0x938], eax
mov dword [ebp - 0x920], ecx
mov ecx, dword [ebp - 0x924]
push ecx
lea edx, [ebp - 0x8d8]
push 0x800
push edx
call dword [sym.imp.MSVCR100.dll_fgets]
add esp, 0xc
test eax, eax
je 0x41065f
xor edi, edi
lea esp, [esp]
mov eax, dword [0x42fb48]
mov ecx, dword [ebp - 0x920]
cmp ecx, dword [eax + 4]
jg 0x41065f
lea eax, [ebp - 0x58]
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40fa70
sub eax, edx
push eax
lea edx, [ebp - 0x58]
push edx
lea eax, [ebp - 0x8d8]
push eax
call esi
add esp, 0xc
test eax, eax
je case.0x410136.4
lea ecx, [ebp - 0x8d8]
push 0xa
push ecx
call dword [sym.imp.MSVCR100.dll_strchr]
add esp, 8
test eax, eax
je 0x40faad
call fcn.00403e90
xor eax, eax
nop
mov cl, byte [eax + 0x430cf0]
mov byte [ebp + eax - 0x14], cl
inc eax
test cl, cl
jne 0x40fab0
xor eax, eax
mov cl, byte [ebp + eax - 0x8d8]
mov byte [ebp + eax - 0x14], cl
inc eax
test cl, cl
jne 0x40fac1
mov eax, 8
lea esi, [ebp - 0x14]
call fcn.00403be0
mov edx, dword [0x430c10]
mov eax, esi
add edx, edi
mov esi, 1
add dword [ebp - 0x920], esi
mov ecx, eax
add edi, 0xd
sub edx, ecx
lea ebx, [ebx]
mov cl, byte [eax]
mov byte [eax + edx], cl
add eax, esi
test cl, cl
jne 0x40fb00
mov edx, dword [0x430cb0]
mov eax, dword [0x430ca0]
push edx
push eax
lea eax, [ebp - 0x14]
call fcn.004041d0
mov edx, dword [ebp - 0x924]
mov ecx, dword [0x42fdf0]
push edx
mov ebx, eax
lea eax, [ebp - 0x8d8]
push 0x800
push eax
mov dword [ecx + ebx*4 - 4], esi
call dword [sym.imp.MSVCR100.dll_fgets]
add esp, 0x14
test eax, eax
je 0x41065f
mov esi, dword [sym.imp.MSVCR100.dll__strnicmp]
jmp 0x40fa50
push 0xd
lea ecx, [ebp - 0x8d8]
push str.BEGIN_L1VARS
push ecx
call esi
add esp, 0xc
test eax, eax
je 0x40fb8d
push 0xd
lea edx, [ebp - 0x8d8]
push str.BEGIN_L2VARS:
push edx
call esi
add esp, 0xc
test eax, eax
jne case.0x410136.4
mov ecx, dword [0x430cb8]
cmp ecx, 2
jne 0x40fba4
mov dword [0x430a60], 0
jmp 0x40fbad
cmp ecx, 0xffffffff
je 0x4107f9
mov eax, dword [ebp - 0x91c]
mov edx, dword [eax*4 + 0x430208]
cmp byte [edx], 0
je 0x4107f9
cmp byte [ebp - 0x8d0], 0x31
jne 0x40fc42
mov eax, dword [str.END_L1VARS]
mov edi, dword [0x430ca0]
mov edx, dword [0x428d60]
mov dword [ebp - 0x58], eax
mov eax, dword [0x428d64]
mov dword [ebp - 0x50], eax
xor esi, esi
mov eax, ecx
add edi, 0xd
sub eax, 3
mov dword [ebp - 0x91c], esi
mov dword [ebp - 0x54], edx
je 0x40fc2b
sub eax, 2
je 0x40fc1a
dec eax
jne 0x40fcb2
mov ecx, dword [0x430b94]
mov dword [ebp - 0x92c], ecx
jmp 0x40fcbb
mov edx, dword [0x430ca4]
mov dword [ebp - 0x934], edx
jmp 0x40fcbb
mov eax, dword [0x42fd44]
mov dword [ebp - 0x930], 0x42fd40
mov dword [ebp - 0x938], eax
jmp 0x40fcbb
mov eax, dword [0x428d6c]
mov edx, dword [str.END_L2VARS]
mov edi, dword [0x430c14]
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x58], edx
mov edx, dword [0x428d70]
mov eax, ecx
mov esi, 1
add edi, 0xd
sub eax, 3
mov dword [ebp - 0x91c], esi
mov dword [ebp - 0x50], edx
je 0x40fc9a
sub eax, 2
je 0x40fc8c
dec eax
jne 0x40fcb2
mov eax, dword [0x430d44]
mov dword [ebp - 0x92c], eax
jmp 0x40fcbb
mov ecx, dword [0x4300e0]
mov dword [ebp - 0x934], ecx
jmp 0x40fcbb
mov edx, dword [0x42fd68]
mov dword [ebp - 0x930], 0x42fd64
mov dword [ebp - 0x938], edx
jmp 0x40fcbb
cmp ecx, 2
je case.0x40fd45.4
mov eax, dword [ebp - 0x924]
push eax
lea ecx, [ebp - 0x8d8]
push 0x800
push ecx
call dword [sym.imp.MSVCR100.dll_fgets]
add esp, 0xc
lea edx, [ebp - 0x8d8]
push 0xa
push edx
call dword [sym.imp.MSVCR100.dll_strchr]
add esp, 8
test eax, eax
je 0x40fcf2
call fcn.00403e90
push 9
lea eax, [ebp - 0x8d8]
push str.level2id:
push eax
call dword [sym.imp.MSVCR100.dll__strnicmp]
add esp, 0xc
test eax, eax
jne 0x410746
lea ecx, [ebp - 0x8cf]
mov edx, ecx
mov dword [ebp - 0x93c], ecx
push edx
mov ecx, esi
call fcn.00405d30
mov ebx, eax
add esp, 4
test ebx, ebx
js 0x4106d4
mov eax, dword [0x430cb8]
add eax, 0xfffffffe
cmp eax, 7
ja case.0x40fd45.4
jmp dword [eax*4 + 0x4109a8]
mov eax, dword [ebp - 0x930]
lea ecx, [ebp - 0x8cf]
push 0x24
push ecx
mov dword [eax + 0x18], ebx
call dword [sym.imp.MSVCR100.dll_strchr]
add esp, 8
test eax, eax
jmp 0x40fdff
mov eax, dword [ebp - 0x934]
lea edx, [ebx*8]
sub edx, ebx
lea eax, [eax + edx*4]
jmp 0x40fdf4
mov eax, dword [ebp - 0x92c]
lea edx, [ebx + ebx*2]
add edx, edx
or ecx, 0xffffffff
cmp word [eax + edx*8 + 0x1c], 1
mov word [eax + edx*8 + 0x20], cx
jmp 0x40fdff
lea eax, [esi + esi*8]
shl eax, 4
cmp dword [ebp - 0x944], 0
je 0x40fdba
mov edx, dword [eax + 0x42fa2c]
cmp byte [ebx + edx], 0xfa
jbe 0x40fdcc
jmp 0x40fdc6
mov ecx, dword [eax + 0x42fa2c]
cmp byte [ebx + ecx], 0x7f
jae 0x40fdcc
inc dword [0x430a60]
mov edx, dword [eax + 0x42fa34]
mov dword [edx + ebx*4], 0xffffffff
jmp case.0x40fd45.4
mov edx, dword [0x42fb48]
lea eax, [esi*8]
sub eax, esi
mov eax, dword [edx + eax*8 + 0x30]
lea ecx, [ebx + ebx*4]
lea eax, [eax + ecx*4]
or ecx, 0xffffffff
mov word [eax + 4], cx
cmp word [eax], 1
jne case.0x40fd45.4
inc dword [0x430a60]
mov edx, dword [ebp - 0x924]
push edx
lea eax, [ebp - 0x8d8]
push 0x800
push eax
mov dword [ebp - 0x920], 0
call dword [sym.imp.MSVCR100.dll_fgets]
add esp, 0xc
test eax, eax
je 0x4100a4
mov eax, dword [ebp - 0x91c]
lea esi, [eax*8]
sub esi, eax
add esi, esi
add esi, esi
add esi, esi
mov dword [ebp - 0x940], esi
mov ecx, dword [0x42fb48]
mov edx, dword [ebp - 0x920]
cmp edx, dword [esi + ecx + 4]
jg 0x4100a4
lea eax, [ebp - 0x58]
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40fe70
sub eax, edx
push eax
lea eax, [ebp - 0x58]
push eax
lea ecx, [ebp - 0x8d8]
push ecx
call dword [sym.imp.MSVCR100.dll__strnicmp]
add esp, 0xc
test eax, eax
je case.0x410136.4
lea edx, [ebp - 0x8d8]
push 0xa
push edx
call dword [sym.imp.MSVCR100.dll_strchr]
add esp, 8
test eax, eax
je 0x40feb1
call fcn.00403e90
lea eax, [ebp - 0x8d8]
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40fec0
sub eax, edx
cmp eax, 0xc
ja 0x41077f
cmp dword [0x430cb8], 2
je 0x40fefa
mov ecx, dword [ebp - 0x91c]
lea eax, [ebp - 0x8d8]
push eax
call fcn.00405d30
mov ebx, eax
add esp, 4
test ebx, ebx
js 0x4107bc
mov eax, dword [0x430cb8]
add eax, 0xfffffffe
cmp eax, 7
ja case.0x40ff0b.4
jmp dword [eax*4 + 0x4109c8]
xor eax, eax
mov cl, byte [eax + 0x430cf0]
mov byte [ebp + eax - 0x14], cl
inc eax
test cl, cl
jne 0x40ff14
mov eax, dword [ebp - 0x93c]
lea edx, [ebp - 0x14]
sub edx, eax
mov edi, edi
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x40ff30
mov eax, 8
lea esi, [ebp - 0x14]
call fcn.00403be0
inc dword [ebp - 0x920]
mov edx, edi
mov ecx, esi
add edi, 0xd
mov eax, esi
sub edx, ecx
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x40ff58
mov esi, dword [ebp - 0x940]
jmp case.0x40ff0b.4
mov ecx, dword [ebp - 0x930]
inc dword [ecx + 0x14]
mov eax, dword [ecx + 0x14]
mov edx, dword [ebp - 0x938]
inc dword [ebp - 0x920]
mov dword [edx + eax*4 - 4], ebx
mov eax, ebx
imul eax, eax, 0xd
add eax, dword [ecx + 0x1c]
mov edx, edi
add edi, 0xd
mov cl, byte [eax]
mov byte [edx], cl
inc eax
inc edx
test cl, cl
jne 0x40ff96
jmp case.0x40ff0b.4
mov ecx, dword [ebp - 0x934]
inc dword [ebp - 0x920]
lea eax, [ebx*8]
sub eax, ebx
lea eax, [ecx + eax*4]
mov edx, 1
mov word [eax + 4], dx
mov edx, edi
add eax, 6
add edi, 0xd
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x40ffd0
jmp case.0x40ff0b.4
inc dword [ebp - 0x920]
lea eax, [ebx + ebx*2]
shl eax, 4
add eax, dword [ebp - 0x92c]
mov edx, 1
mov word [eax + 0x20], dx
mov edx, edi
add eax, 0x22
add edi, 0xd
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x410004
jmp case.0x40ff0b.4
mov ecx, dword [ebp - 0x91c]
inc dword [ebp - 0x920]
lea ecx, [ecx + ecx*8]
shl ecx, 4
mov eax, dword [ecx + 0x42fa34]
mov dword [eax + ebx*4], 1
mov eax, ebx
shl eax, 5
add eax, ebx
add eax, dword [ecx + 0x42fa3c]
mov edx, edi
add edi, 0xd
mov cl, byte [eax]
mov byte [edx], cl
inc eax
inc edx
test cl, cl
jne 0x410041
jmp case.0x40ff0b.4
mov edx, dword [0x42fb48]
mov eax, dword [esi + edx + 0x30]
inc dword [ebp - 0x920]
lea ecx, [ebx + ebx*4]
lea eax, [eax + ecx*4]
mov ecx, 1
mov word [eax + 4], cx
mov edx, edi
add eax, 6
add edi, 0xd
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x410076
mov edx, dword [ebp - 0x924]
push edx
lea eax, [ebp - 0x8d8]
push 0x800
push eax
call dword [sym.imp.MSVCR100.dll_fgets]
add esp, 0xc
test eax, eax
jne 0x40fe50
mov esi, dword [sym.imp.MSVCR100.dll_printf]
lea edx, [ebp - 0x58]
push edx
push str.Did_not_find__s__n
call esi
push 0x427955
push 0x428e48
call esi
add esp, 0x10
call fcn.00404240
inc dword [0x42fba4]
je 0x4100d6
call fcn.00403eb0
push 0x64
call dword [sym.imp.MSVCR100.dll_exit]
mov edi, dword [0x430cb8]
xor eax, eax
cmp byte [ebp - 0x8d7], 0x31
lea ecx, [ebp - 0x8d0]
setne al
mov dword [ebp - 0x91c], eax
cmp edi, 0xffffffff
je 0x410834
cmp byte [ebp - 0x8d0], 0x20
jne 0x410116
mov edi, edi
inc ecx
cmp byte [ecx], 0x20
je 0x410110
mov edx, dword [eax*4 + 0x430208]
lea ecx, [ecx]
mov al, byte [ecx]
mov byte [edx], al
inc ecx
inc edx
test al, al
jne 0x410120
lea eax, [edi - 2]
cmp eax, 6
ja case.0x410136.4
jmp dword [eax*4 + 0x4109e8]
mov esi, dword [ebp - 0x91c]
mov eax, dword [esi*4 + 0x430208]
mov edi, 0x428c30
call fcn.00403b20
mov edx, dword [0x42fb48]
lea ecx, [esi*8]
sub ecx, esi
mov dword [edx + ecx*8], eax
jmp case.0x410136.4
mov esi, dword [ebp - 0x91c]
mov eax, dword [esi*4 + 0x430208]
lea ebx, [esi*8]
sub ebx, esi
add ebx, ebx
add ebx, ebx
mov edi, 0x428d00
add ebx, ebx
call fcn.00403b20
mov ecx, dword [0x42fb48]
mov dword [ebx + ecx], eax
mov ecx, esi
call fcn.00404610
test eax, eax
jne 0x41086f
test esi, esi
jne 0x4101bd
mov edx, dword [0x42fb48]
mov eax, dword [edx + 4]
mov dword [0x430cb0], eax
jmp 0x4101cc
mov ecx, dword [0x42fb48]
mov edx, dword [ecx + 0x3c]
mov dword [0x430b90], edx
push esi
call fcn.00407300
mov eax, dword [0x42fb48]
mov edi, dword [ebx + eax + 4]
mov ecx, dword [ebx + eax]
imul edi, edi, 0x1a
lea esi, [esi + esi*8]
add esi, esi
add esi, esi
add esp, 4
mov dword [esi + 0x42fd40], ecx
call fcn.00404140
mov edx, dword [0x42fb48]
mov ecx, dword [ebx + edx + 4]
mov edx, ecx
imul edx, edx, 0xd
add edx, eax
lea edi, [ecx*4]
mov dword [esi + 0x42fd5c], eax
mov dword [esi + 0x42fd60], edx
call fcn.00404140
mov dword [esi + 0x42fd44], eax
mov eax, dword [0x42fb48]
cmp dword [ebx + eax + 4], 0
mov dword [ebp - 0x928], 0
jle 0x410268
mov ebx, dword [ebx + eax + 4]
mov eax, dword [ebp - 0x928]
jmp 0x410250
mov ecx, dword [esi + 0x42fd44]
mov dword [ecx + eax*4], 0xffffffff
inc eax
cmp eax, ebx
jl 0x410250
mov dword [ebp - 0x928], eax
lea ecx, [esi + 0x42fd40]
call fcn.00404750
test eax, eax
jne 0x41089f
mov ebx, dword [ebp - 0x928]
mov dword [esi + 0x42fd58], 0xffffffff
jmp case.0x410136.4
mov esi, dword [ebp - 0x91c]
mov eax, dword [esi*4 + 0x430208]
mov edi, 0x428d00
call fcn.00403b20
mov ecx, dword [0x42fb48]
lea edx, [esi*8]
sub edx, esi
mov dword [ecx + edx*8], eax
mov ecx, esi
call fcn.00404eb0
test eax, eax
jne 0x4108d5
test esi, esi
jne 0x410341
mov edx, dword [0x42fb48]
mov eax, dword [edx + 4]
lea edi, [eax*8]
sub edi, eax
add edi, edi
add edi, edi
mov dword [0x430cb0], eax
call fcn.00404140
mov ecx, dword [0x42fb48]
mov edx, dword [ecx]
mov dword [ecx + 0x18], eax
push eax
mov dword [0x430ca4], eax
mov eax, dword [ecx + 4]
push eax
xor ecx, ecx
call fcn.004050f0
add esp, 8
test eax, eax
jne 0x410616
mov eax, dword [0x430208]
push eax
push str.__s_is_an_empty_file_n
call dword [sym.imp.MSVCR100.dll_printf]
add esp, 8
call fcn.00404240
inc dword [0x42fba4]
je 0x410339
call fcn.00403eb0
push 1
call dword [sym.imp.MSVCR100.dll_exit]
mov ecx, dword [0x42fb48]
mov eax, dword [ecx + 0x3c]
lea edi, [eax*8]
sub edi, eax
add edi, edi
add edi, edi
mov dword [0x430b90], eax
call fcn.00404140
mov ecx, dword [0x42fb48]
mov edx, dword [ecx + 0x3c]
push eax
push edx
mov edx, dword [ecx + 0x38]
mov dword [ecx + 0x50], eax
mov ecx, 1
mov dword [0x4300e0], eax
call fcn.004050f0
add esp, 8
test eax, eax
jne 0x410616
mov ecx, dword [0x43020c]
push ecx
push str.__s_is_an_empty_file_n
call dword [sym.imp.MSVCR100.dll_printf]
add esp, 8
call fcn.00404240
inc dword [0x42fba4]
je 0x4103b3
call fcn.00403eb0
push 1
call dword [sym.imp.MSVCR100.dll_exit]
mov eax, dword [ebp - 0x91c]
lea esi, [eax*8]
sub esi, eax
mov eax, dword [eax*4 + 0x430208]
add esi, esi
add esi, esi
mov edi, 0x428d00
add esi, esi
call fcn.00403b20
mov ecx, dword [0x42fb48]
mov dword [esi + ecx], eax
mov ecx, dword [ebp - 0x91c]
call fcn.004055e0
test eax, eax
jne 0x410905
cmp dword [ebp - 0x91c], eax
jne 0x410444
mov eax, dword [0x42fbc0]
lea edi, [eax + eax*2]
shl edi, 4
call fcn.00404140
mov edi, dword [0x42fbc0]
mov ecx, dword [0x42fb48]
mov edx, dword [ecx + 4]
add edi, edi
add edi, edi
add edi, edi
mov dword [0x430b94], eax
mov dword [0x430cb0], edx
mov dword [ecx + 0x1c], eax
call fcn.00404140
mov dword [0x43021c], eax
jmp 0x410470
mov eax, dword [0x42fb48]
mov ecx, dword [eax + 0x3c]
mov eax, dword [0x42fbe8]
lea edi, [eax + eax*2]
shl edi, 4
mov dword [0x430b90], ecx
call fcn.00404140
mov edx, dword [0x42fb48]
mov dword [0x430d44], eax
mov dword [edx + 0x54], eax
mov edi, dword [ebp - 0x91c]
push edi
call fcn.00407300
add esp, 4
test edi, edi
jne 0x41049b
mov eax, dword [0x430b94]
mov ecx, dword [0x42fbc0]
mov edx, dword [0x42fb48]
push eax
push ecx
mov ecx, dword [edx]
push edi
jmp 0x4104b5
mov eax, dword [0x430d44]
lea ecx, [edi + edi*4]
mov edx, dword [ecx*8 + 0x42fbc0]
push eax
mov eax, dword [0x42fb48]
mov ecx, dword [esi + eax]
push edx
push edi
call fcn.004057a0
dec eax
add esp, 0xc
test eax, eax
jg case.0x410136.4
mov edi, dword [edi*4 + 0x430208]
push edi
push str.__s_is_an_empty_file_n
call dword [sym.imp.MSVCR100.dll_printf]
add esp, 8
call fcn.00404240
inc dword [0x42fba4]
je 0x4104ee
call fcn.00403eb0
push 1
call dword [sym.imp.MSVCR100.dll_exit]
mov esi, dword [ebp - 0x91c]
mov eax, dword [esi*4 + 0x430208]
mov edi, 0x428d00
call fcn.00403b20
mov edx, dword [0x42fb48]
lea ecx, [esi*8]
sub ecx, esi
push esi
mov dword [edx + ecx*8], eax
call fcn.00406000
add esp, 4
test eax, eax
jne 0x41093b
test esi, esi
jne 0x410544
mov eax, dword [0x42fb48]
mov ecx, dword [eax + 4]
mov dword [0x430cb0], ecx
jmp 0x410552
mov edx, dword [0x42fb48]
mov eax, dword [edx + 0x3c]
mov dword [0x430b90], eax
push esi
call fcn.00407300
lea ecx, [esi + esi*8]
xor edx, edx
shl ecx, 4
add esp, 4
cmp dword [ecx + 0x42fa38], 8
setge dl
mov dword [ebp - 0x944], edx
jmp case.0x410136.4
cmp dword [0x430cb8], 0xffffffff
je 0x41096b
xor eax, eax
cmp byte [ebp - 0x8d7], 0x31
lea ecx, [ebp - 0x8cf]
setne al
cmp byte [ebp - 0x8cf], 0x20
mov dword [ebp - 0x91c], eax
jne 0x4105ac
inc ecx
cmp byte [ecx], 0x20
je 0x4105a6
mov edx, dword [eax*4 + 0x4300e8]
mov al, byte [ecx]
mov byte [edx], al
inc ecx
inc edx
test al, al
jne 0x4105b3
jmp case.0x410136.4
cmp byte [ebp - 0x8d4], 0x31
jne 0x4105ed
lea eax, [ebp - 0x8cf]
xor esi, esi
push eax
mov dword [ebp - 0x91c], esi
call dword [sym.imp.MSVCR100.dll_atoi]
mov ecx, dword [0x42fb48]
mov dword [0x430cb0], eax
mov dword [ecx + 4], eax
jmp 0x410613
lea edx, [ebp - 0x8cf]
mov esi, 1
push edx
mov dword [ebp - 0x91c], esi
call dword [sym.imp.MSVCR100.dll_atoi]
mov ecx, dword [0x42fb48]
mov dword [0x430b90], eax
mov dword [ecx + 0x3c], eax
add esp, 4
push esi
call fcn.00407300
add esp, 4
mov edx, dword [ebp - 0x924]
push edx
lea eax, [ebp - 0x8d8]
push 0x800
push eax
call dword [sym.imp.MSVCR100.dll_fgets]
add esp, 0xc
test eax, eax
jne 0x40f672
lea ecx, [ebp - 0x918]
call fcn.00410a10
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00425fc4
mov esp, ebp
pop ebp
ret
mov esi, dword [sym.imp.MSVCR100.dll_printf]
lea ecx, [ebp - 0x58]
push ecx
push str.Did_not_find__s__n
call esi
push 0x427955
push 0x428e48
call esi
add esp, 0x10
call fcn.00404240
inc dword [0x42fba4]
je 0x410691
call fcn.00403eb0
push 0x64
call dword [sym.imp.MSVCR100.dll_exit]
mov esi, dword [sym.imp.MSVCR100.dll_printf]
lea edx, [ebp - 0xd8]
push edx
call esi
add esp, 4
push 0x427955
push 0x428e48
call esi
add esp, 8
call fcn.00404240
inc dword [0x42fba4]
je 0x4106cc
call fcn.00403eb0
push 0x64
call dword [sym.imp.MSVCR100.dll_exit]
mov esi, dword [sym.imp.MSVCR100.dll_printf]
push str.id_variable_not_found__n
call esi
add esp, 4
push 0x427955
push 0x428e48
call esi
add esp, 8
call fcn.00404240
inc dword [0x42fba4]
je 0x410705
call fcn.00403eb0
push 0x64
call dword [sym.imp.MSVCR100.dll_exit]
mov esi, dword [sym.imp.MSVCR100.dll_printf]
push str.ID_var_should_not_be_chosen_for_ASCII_data_n
call esi
add esp, 4
push 0x427955
push 0x428e48
call esi
add esp, 8
call fcn.00404240
inc dword [0x42fba4]
je 0x41073e
call fcn.00403eb0
push 0x64
call dword [sym.imp.MSVCR100.dll_exit]
mov esi, dword [sym.imp.MSVCR100.dll_printf]
push str.ID_specification_must_immediately_follow_begin_line__n
call esi
add esp, 4
push 0x427955
push 0x428e48
call esi
add esp, 8
call fcn.00404240
inc dword [0x42fba4]
je 0x410777
call fcn.00403eb0
push 0x64
call dword [sym.imp.MSVCR100.dll_exit]
mov esi, dword [sym.imp.MSVCR100.dll_printf]
lea eax, [ebp - 0x8d8]
push eax
push str.Variable_name__s_is_too_long__n
call esi
push 0x427955
push 0x428e48
call esi
add esp, 0x10
call fcn.00404240
inc dword [0x42fba4]
je 0x4107b4
call fcn.00403eb0
push 0x64
call dword [sym.imp.MSVCR100.dll_exit]
mov esi, dword [sym.imp.MSVCR100.dll_printf]
lea ecx, [ebp - 0x8d8]
push ecx
push str.Variable__s_not_found__n
call esi
push 0x427955
push 0x428e48
call esi
add esp, 0x10
call fcn.00404240
inc dword [0x42fba4]
je 0x4107f1
call fcn.00403eb0
push 0x64
call dword [sym.imp.MSVCR100.dll_exit]
mov esi, dword [sym.imp.MSVCR100.dll_printf]
lea eax, [ebp - 0xd8]
push eax
call esi
add esp, 4
push 0x427955
push 0x428e48
call esi
add esp, 8
call fcn.00404240
inc dword [0x42fba4]
je 0x41082c
call fcn.00403eb0
push 0x64
call dword [sym.imp.MSVCR100.dll_exit]
mov esi, dword [sym.imp.MSVCR100.dll_printf]
lea ecx, [ebp - 0x8c]
push ecx
call esi
add esp, 4
push 0x427955
push 0x428e48
call esi
add esp, 8
call fcn.00404240
inc dword [0x42fba4]
je 0x410867
call fcn.00403eb0
push 0x64
call dword [sym.imp.MSVCR100.dll_exit]
mov esi, dword [esi*4 + 0x430208]
push esi
push str.__s_is_an_empty_file_n
call dword [sym.imp.MSVCR100.dll_printf]
add esp, 8
call fcn.00404240
inc dword [0x42fba4]
je 0x410897
call fcn.00403eb0
push 1
call dword [sym.imp.MSVCR100.dll_exit]
mov edx, dword [ebp - 0x91c]
mov eax, dword [edx*4 + 0x430208]
push eax
push str.__s_is_an_empty_file_n
call dword [sym.imp.MSVCR100.dll_printf]
add esp, 8
call fcn.00404240
inc dword [0x42fba4]
je 0x4108cd
call fcn.00403eb0
push 1
call dword [sym.imp.MSVCR100.dll_exit]
mov eax, dword [esi*4 + 0x430208]
push eax
push str.__s_is_an_empty_file_n
call dword [sym.imp.MSVCR100.dll_printf]
add esp, 8
call fcn.00404240
inc dword [0x42fba4]
je 0x4108fd
call fcn.00403eb0
push 1
call dword [sym.imp.MSVCR100.dll_exit]
mov edx, dword [ebp - 0x91c]
mov eax, dword [edx*4 + 0x430208]
push eax
push str.__s_is_an_empty_file_n
call dword [sym.imp.MSVCR100.dll_printf]
add esp, 8
call fcn.00404240
inc dword [0x42fba4]
je 0x410933
call fcn.00403eb0
push 1
call dword [sym.imp.MSVCR100.dll_exit]
mov eax, dword [esi*4 + 0x430208]
push eax
push str.__s_is_an_empty_file_n
call dword [sym.imp.MSVCR100.dll_printf]
add esp, 8
call fcn.00404240
inc dword [0x42fba4]
je 0x410963
call fcn.00403eb0
push 1
call dword [sym.imp.MSVCR100.dll_exit]
mov esi, dword [sym.imp.MSVCR100.dll_printf]
lea eax, [ebp - 0x8c]
push eax
call esi
add esp, 4
push 0x427955
push 0x428e48
call esi
add esp, 8
call fcn.00404240
inc dword [0x42fba4]
je 0x41099e
call fcn.00403eb0
push 0x64
call dword [sym.imp.MSVCR100.dll_exit]
mov edi, edi
or eax, 0x4c004107
std
inc eax
add byte [edi], al
inc byte [eax]
outsb dx, byte [esi]
std
inc eax
add byte [edx - 0x24ffbf03], al
std
inc eax
add byte [ebp - 0x24ffbf03], bl
std
inc eax
add byte [edx], dl
inc dword [eax]
insd dword es:[edi], dx
inc dword [eax]
add byte [eax], 0x41
add byte [ebp - 553631489], ah
inc dword [eax]
dec ebp
add byte [ecx], al
adc byte [eax], al
inc ecx
add byte [ebp], cl
inc ecx
add byte [0x6b004101], bh
add dword [ecx], eax
pop ds
push es
inc ecx
add byte [eax - 0x44ffbefe], dl
add eax, dword [ecx]
pop ds
push es
inc ecx
add dh, dh
add al, 0x41
add ah, cl
int3