Function at 0x417fd0
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x93c
mov eax, dword [section..data]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [0x4399d8]
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]
movsb byte es:[edi], byte [esi]
xor edi, edi
cmp byte [eax], 0
je 0x4197e1
mov ebx, 1
mov esi, 0x431ff8
mov dword [0x439248], edi
mov dword [0x438ed0], ebx
mov dword [0x439264], 0xffffffff
call fcn.00404260
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 0x30c
call dword [sym.imp.MSVCR100.dll_malloc]
mov esi, eax
add esp, 4
cmp esi, edi
jne 0x41809a
push str._Out_of_memory._Please_run_a_smaller_problem_n
call dword [sym.imp.MSVCR100.dll_printf]
add esp, 4
call fcn.00404c60
add dword [0x437d8c], ebx
je 0x418092
call fcn.004048c0
push 3
call dword [sym.imp.MSVCR100.dll_exit]
push 0x30c
push edi
push esi
call sub.MSVCR100.dll_memset
lea eax, [esi + 0x104]
mov dword [0x438514], eax
add esp, 0xc
add eax, 0x104
mov dword [0x438518], eax
mov eax, dword [0x437c5c]
mov dword [0x438510], esi
mov byte [esi], 0
mov ecx, dword [0x438514]
mov byte [ecx], 0
mov edx, dword [0x438518]
mov ebx, str.HMLM2_MDM_CREATION_TEMPLATE
mov byte [edx], 0
mov dword [eax + 4], edi
mov dword [eax + 0x3c], edi
mov dword [eax + 0x74], edi
mov dword [0x439234], edi
lea ecx, [ebx + 1]
mov al, byte [ebx]
inc ebx
test al, al
jne 0x4180f5
mov edi, dword [sym.imp.MSVCR100.dll__strnicmp]
sub ebx, ecx
push ebx
lea eax, [ebp - 0x8d8]
push str.HMLM2_MDM_CREATION_TEMPLATE
push eax
call edi
add esp, 0xc
test eax, eax
je 0x418152
push str._s_does_not_seem_to_be_a__s_mdm_template_file__n
call dword [sym.imp.MSVCR100.dll_printf]
mov ecx, dword [ebp - 0x924]
add esp, 4
push ecx
call dword [sym.imp.MSVCR100.dll_fclose]
add esp, 4
call fcn.00404c60
inc dword [0x437d8c]
je 0x41814a
call fcn.004048c0
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 0x4197d6
mov esi, dword [ebp - 0x91c]
lea esp, [esp]
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 0x4181be
mov byte [eax], 0
dec eax
cmp byte [eax], 0
je 0x4181be
nop
cmp byte [eax], 0x20
jne 0x4181be
mov byte [eax], 0
dec eax
cmp byte [eax], 0
jne 0x4181b0
lea eax, [ebp - 0x8d8]
mov dword [ebp - 0x920], eax
mov al, byte [ebp - 0x8d8]
test al, al
je case.0x418e46.4
cmp al, 0x20
je case.0x418e46.4
cmp al, 0x23
je case.0x418e46.4
push 0xb
lea ecx, [ebp - 0x8d8]
push str.RAWDATTYPE:
push ecx
call edi
add esp, 0xc
test eax, eax
jne 0x418340
push 5
lea edx, [ebp - 0x8cd]
push str.ASCII
push edx
xor edi, edi
call dword [sym.imp.MSVCR100.dll__strnicmp]
add esp, 0xc
test eax, eax
jne 0x418252
mov edi, 0xc00
mov dword [0x439264], 2
call fcn.00404b60
mov dword [0x4383e0], eax
add eax, 0x400
mov dword [0x4383e4], eax
add eax, 0x400
mov dword [0x4383e8], eax
mov edi, 0xc01
push 6
lea eax, [ebp - 0x8cd]
push str.SYSTAT
push eax
call dword [sym.imp.MSVCR100.dll__strnicmp]
add esp, 0xc
test eax, eax
jne 0x418278
mov dword [0x439264], 3
inc edi
push 3
lea ecx, [ebp - 0x8cd]
push 0x432048
push ecx
call dword [sym.imp.MSVCR100.dll__strnicmp]
add esp, 0xc
test eax, eax
jne 0x41829e
mov dword [0x439264], 5
inc edi
push 4
lea edx, [ebp - 0x8cd]
push str.SPSS
push edx
call dword [sym.imp.MSVCR100.dll__strnicmp]
add esp, 0xc
test eax, eax
jne 0x4182c4
mov dword [0x439264], 6
inc edi
push 4
lea eax, [ebp - 0x8cd]
push str.STATA
push eax
call dword [sym.imp.MSVCR100.dll__strnicmp]
add esp, 0xc
test eax, eax
jne 0x4182ea
mov dword [0x439264], 8
inc edi
push 5
lea ecx, [ebp - 0x8cd]
push str.OTHER
push ecx
call dword [sym.imp.MSVCR100.dll__strnicmp]
add esp, 0xc
test eax, eax
jne 0x418310
mov dword [0x439264], 9
inc edi
test edi, edi
jne case.0x418e46.4
push str.Invalid_raw_data_type._n
call dword [sym.imp.MSVCR100.dll_printf]
add esp, 4
call fcn.00404c60
inc dword [0x437d8c]
je 0x418338
call fcn.004048c0
push 0x64
call dword [sym.imp.MSVCR100.dll_exit]
push 8
lea edx, [ebp - 0x8d8]
push str.MDMNAME:
push edx
call edi
add esp, 0xc
test eax, eax
jne 0x418382
cmp byte [ebp - 0x8d0], 0x20
lea eax, [ebp - 0x8d0]
jne 0x41836c
inc eax
cmp byte [eax], 0x20
je 0x418366
mov edx, 0x439540
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x418373
jmp case.0x418e46.4
push 9
lea eax, [ebp - 0x8d8]
push str.NUML1VAR:
push eax
call edi
add esp, 0xc
test eax, eax
je 0x4193bc
push 9
lea ecx, [ebp - 0x8d8]
push str.NUML2VAR:
push ecx
call edi
add esp, 0xc
test eax, eax
je 0x4193bc
push 9
lea edx, [ebp - 0x8d8]
push str.NUML3VAR:
push edx
call edi
add esp, 0xc
test eax, eax
je 0x4193bc
push 9
lea eax, [ebp - 0x8d8]
push str.L1FORMAT:
push eax
call edi
add esp, 0xc
test eax, eax
je 0x419368
push 9
lea ecx, [ebp - 0x8d8]
push str.L2FORMAT:
push ecx
call edi
add esp, 0xc
test eax, eax
je 0x419368
push 9
lea edx, [ebp - 0x8d8]
push str.L3FORMAT:
push edx
call edi
add esp, 0xc
test eax, eax
je 0x419368
push 8
lea eax, [ebp - 0x8d8]
push str.L1FNAME:
push eax
call edi
add esp, 0xc
test eax, eax
je 0x418dda
push 8
lea ecx, [ebp - 0x8d8]
push str.L2FNAME:
push ecx
call edi
add esp, 0xc
test eax, eax
je 0x418dda
push 8
lea edx, [ebp - 0x8d8]
push str.L3FNAME:
push edx
call edi
add esp, 0xc
test eax, eax
je 0x418dda
push 0x10
lea eax, [ebp - 0x8d8]
push str.BEGIN_INDICVARS
push eax
call edi
add esp, 0xc
test eax, eax
jne 0x4186bb
mov eax, dword [0x439264]
cmp eax, 2
jne 0x4184a6
mov dword [0x438da0], 0
jmp 0x4184af
cmp eax, 0xffffffff
je 0x41948b
mov ecx, dword [esi*4 + 0x438510]
cmp byte [ecx], 0
je 0x41948b
mov edx, dword [0x437c5c]
mov edi, dword [edx + 4]
add edi, edi
add edi, edi
call fcn.00404b60
mov dword [0x438004], eax
mov eax, dword [0x437c5c]
mov edi, dword [eax + 4]
imul edi, edi, 0xd
call fcn.00404b60
mov ecx, dword [0x437c5c]
cmp dword [ecx + 4], 0
mov dword [0x4390b8], eax
jle 0x418509
mov ecx, dword [ecx + 4]
lea ebx, [ebx]
mov byte [eax], 0
add eax, 0xd
dec ecx
jne 0x418500
mov eax, dword [0x43210c]
mov ecx, dword [str.END_INDICVARS]
mov edx, dword [0x432108]
mov dword [ebp - 0x50], eax
mov eax, dword [0x439264]
xor esi, esi
sub eax, 3
mov dword [ebp - 0x58], ecx
mov cx, word [0x432110]
mov dword [ebp - 0x54], edx
mov dl, byte [0x432112]
mov dword [ebp - 0x91c], esi
mov word [ebp - 0x4c], cx
mov byte [ebp - 0x4a], dl
je 0x41856c
sub eax, 2
je 0x41855e
dec eax
jne 0x418582
mov eax, dword [0x438ed8]
mov dword [ebp - 0x930], eax
jmp 0x418582
mov ecx, dword [0x439250]
mov dword [ebp - 0x92c], ecx
jmp 0x418582
mov edx, dword [0x437f44]
mov dword [ebp - 0x934], 0x437f40
mov dword [ebp - 0x938], edx
mov eax, dword [ebp - 0x924]
push eax
lea ecx, [ebp - 0x8d8]
push 0x800
push ecx
mov dword [ebp - 0x920], esi
call dword [sym.imp.MSVCR100.dll_fgets]
add esp, 0xc
test eax, eax
je 0x41945f
xor edi, edi
mov edi, edi
mov edx, dword [0x437c5c]
mov eax, dword [ebp - 0x920]
cmp eax, dword [edx + 4]
jg 0x41945f
lea eax, [ebp - 0x58]
lea edx, [eax + 1]
jmp 0x4185d0
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4185d0
sub eax, edx
push eax
lea ecx, [ebp - 0x58]
push ecx
lea edx, [ebp - 0x8d8]
push edx
call dword [sym.imp.MSVCR100.dll__strnicmp]
add esp, 0xc
test eax, eax
je case.0x418e46.4
lea eax, [ebp - 0x8d8]
push 0xa
push eax
call dword [sym.imp.MSVCR100.dll_strchr]
add esp, 8
test eax, eax
je 0x418611
call fcn.004048a0
xor eax, eax
mov cl, byte [eax + 0x4392b0]
mov byte [ebp + eax - 0x14], cl
inc eax
test cl, cl
jne 0x418613
xor eax, eax
mov cl, byte [ebp + eax - 0x8d8]
mov byte [ebp + eax - 0x14], cl
inc eax
test cl, cl
jne 0x418624
mov eax, 8
lea esi, [ebp - 0x14]
call fcn.004045b0
mov ecx, dword [0x4390b8]
mov eax, esi
lea edx, [edi + ecx]
mov esi, 1
add dword [ebp - 0x920], esi
mov ecx, eax
add edi, 0xd
sub edx, ecx
mov edi, edi
mov cl, byte [eax]
mov byte [edx + eax], cl
add eax, esi
test cl, cl
jne 0x418660
mov edx, dword [0x43925c]
mov eax, dword [0x43924c]
push edx
push eax
lea eax, [ebp - 0x14]
call fcn.00404bf0
mov edx, dword [ebp - 0x924]
mov ecx, dword [0x438004]
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 0x41945f
mov esi, dword [ebp - 0x91c]
jmp 0x4185b0
push 0xd
lea ecx, [ebp - 0x8d8]
push str.BEGIN_L1VARS
push ecx
call edi
add esp, 0xc
test eax, eax
je 0x418704
push 0xd
lea edx, [ebp - 0x8d8]
push str.BEGIN_L2VARS:
push edx
call edi
add esp, 0xc
test eax, eax
je 0x418704
push 0xd
lea eax, [ebp - 0x8d8]
push str.BEGIN_L3VARS:
push eax
call edi
add esp, 0xc
test eax, eax
jne case.0x418e46.4
mov ecx, dword [0x439264]
cmp ecx, 2
jne 0x41871b
mov dword [0x438da0], 0
jmp 0x418724
cmp ecx, 0xffffffff
je 0x419603
mov edx, dword [esi*4 + 0x438510]
cmp byte [edx], 0
je 0x419603
mov al, byte [ebp - 0x8d0]
cmp al, 0x31
jne 0x4187b7
mov eax, dword [str.END_L1VARS]
mov edi, dword [0x43924c]
mov edx, dword [0x43215c]
mov dword [ebp - 0x58], eax
mov eax, dword [0x432160]
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 0x41879d
sub eax, 2
je 0x41878c
dec eax
jne 0x4188a3
mov ecx, dword [0x438ed8]
mov dword [ebp - 0x930], ecx
jmp 0x4188ac
mov edx, dword [0x439250]
mov dword [ebp - 0x92c], edx
jmp 0x4188ac
mov eax, dword [0x437f44]
mov dword [ebp - 0x934], 0x437f40
mov dword [ebp - 0x938], eax
jmp 0x4188ac
cmp al, 0x32
jne 0x418835
mov eax, dword [0x432168]
mov edx, dword [str.END_L2VARS]
mov edi, dword [0x4390c0]
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x58], edx
mov edx, dword [0x43216c]
mov eax, ecx
mov esi, 1
add edi, 0xd
sub eax, 3
mov dword [ebp - 0x91c], esi
mov dword [ebp - 0x50], edx
je 0x41881d
sub eax, 2
je 0x41880c
dec eax
jne 0x4188a3
mov eax, dword [0x439524]
mov dword [ebp - 0x930], eax
jmp 0x4188ac
mov ecx, dword [0x4383d0]
mov dword [ebp - 0x92c], ecx
jmp 0x4188ac
mov edx, dword [0x437f6c]
mov dword [ebp - 0x934], 0x437f68
mov dword [ebp - 0x938], edx
jmp 0x4188ac
mov eax, dword [str.END_L3VARS]
mov edi, dword [0x438524]
mov edx, dword [0x432174]
mov dword [ebp - 0x58], eax
mov eax, dword [0x432178]
mov dword [ebp - 0x50], eax
mov eax, ecx
mov esi, 2
add edi, 0xd
sub eax, 3
mov dword [ebp - 0x91c], esi
mov dword [ebp - 0x54], edx
je 0x41888c
sub eax, esi
je 0x41887e
dec eax
jne 0x4188a3
mov ecx, dword [0x439240]
mov dword [ebp - 0x930], ecx
jmp 0x4188ac
mov edx, dword [0x438ef8]
mov dword [ebp - 0x92c], edx
jmp 0x4188ac
mov eax, dword [0x437f94]
mov dword [ebp - 0x934], 0x437f90
mov dword [ebp - 0x938], eax
jmp 0x4188ac
cmp ecx, 2
je case.0x418a98.4
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
lea eax, [ebp - 0x8d8]
push 0xa
push eax
call dword [sym.imp.MSVCR100.dll_strchr]
add esp, 8
test eax, eax
je 0x4188e3
call fcn.004048a0
push 9
lea ecx, [ebp - 0x8d8]
push str.level3id:
push ecx
call dword [sym.imp.MSVCR100.dll__strnicmp]
add esp, 0xc
test eax, eax
jne 0x41957d
lea edx, [ebp - 0x8cf]
mov eax, edx
push eax
mov ecx, esi
mov dword [ebp - 0x920], edx
call fcn.00406800
mov ebx, eax
add esp, 4
test ebx, ebx
js 0x4194b5
mov eax, dword [0x439264]
add eax, 0xfffffffe
cmp eax, 7
ja case.0x418936.4
jmp dword [eax*4 + 0x4197f4]
mov ecx, dword [ebp - 0x934]
lea edx, [ebp - 0x8cf]
push 0x24
push edx
mov dword [ecx + 0x18], ebx
call dword [sym.imp.MSVCR100.dll_strchr]
add esp, 8
test eax, eax
jmp 0x4189fd
mov ecx, dword [ebp - 0x92c]
lea eax, [ebx*8]
sub eax, ebx
lea eax, [ecx + eax*4]
jmp 0x4189f2
lea eax, [ebx + ebx*2]
shl eax, 4
add eax, dword [ebp - 0x930]
or edx, 0xffffffff
mov ecx, 1
mov word [eax + 0x20], dx
cmp word [eax + 0x1c], cx
jne case.0x418936.4
add dword [0x438da0], ecx
jmp case.0x418936.4
lea eax, [esi + esi*8]
shl eax, 4
cmp dword [ebp - 0x93c], 0
je 0x4189b9
mov ecx, dword [eax + 0x437a8c]
cmp byte [ebx + ecx], 0xfa
jbe 0x4189cb
jmp 0x4189c5
mov edx, dword [eax + 0x437a8c]
cmp byte [ebx + edx], 0x7f
jae 0x4189cb
inc dword [0x438da0]
mov eax, dword [eax + 0x437a94]
mov dword [eax + ebx*4], 0xffffffff
jmp case.0x418936.4
mov eax, dword [0x437c5c]
lea ecx, [esi*8]
sub ecx, esi
mov ecx, dword [eax + ecx*8 + 0x30]
lea edx, [ebx + ebx*4]
lea eax, [ecx + edx*4]
or edx, 0xffffffff
mov word [eax + 4], dx
cmp word [eax], 1
jne case.0x418936.4
inc dword [0x438da0]
cmp esi, 2
jge case.0x418a98.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 0x418a45
call fcn.004048a0
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 0x419555
lea ecx, [ebp - 0x8cf]
mov edx, ecx
mov dword [ebp - 0x920], ecx
push edx
mov ecx, esi
call fcn.00406800
mov ebx, eax
add esp, 4
test ebx, ebx
js 0x419505
mov eax, dword [0x439264]
add eax, 0xfffffffe
cmp eax, 7
ja case.0x418a98.4
jmp dword [eax*4 + 0x419814]
mov eax, dword [ebp - 0x934]
lea ecx, [ebp - 0x8cf]
push 0x24
push ecx
mov dword [eax + 0x1c], ebx
call dword [sym.imp.MSVCR100.dll_strchr]
add esp, 8
test eax, eax
jmp 0x418b65
mov eax, dword [ebp - 0x92c]
lea edx, [ebx*8]
sub edx, ebx
lea eax, [eax + edx*4]
jmp 0x418b58
mov eax, dword [ebp - 0x930]
lea edx, [ebx + ebx*2]
add edx, edx
mov ecx, 0xfffffffe
mov word [eax + edx*8 + 0x20], cx
mov ecx, 1
cmp word [eax + edx*8 + 0x1c], cx
jne case.0x418a98.4
add dword [0x438da0], ecx
jmp case.0x418a98.4
lea eax, [esi + esi*8]
shl eax, 4
cmp dword [ebp - 0x93c], 0
je 0x418b1e
mov edx, dword [eax + 0x437a8c]
cmp byte [ebx + edx], 0xfa
jbe 0x418b30
jmp 0x418b2a
mov ecx, dword [eax + 0x437a8c]
cmp byte [ebx + ecx], 0x7f
jae 0x418b30
inc dword [0x438da0]
mov edx, dword [eax + 0x437a94]
mov dword [edx + ebx*4], 0xfffffffe
jmp case.0x418a98.4
mov edx, dword [0x437c5c]
lea eax, [esi*8]
sub eax, esi
mov eax, dword [edx + eax*8 + 0x30]
lea ecx, [ebx + ebx*4]
lea eax, [eax + ecx*4]
mov ecx, 0xfffffffe
mov word [eax + 4], cx
cmp word [eax], 1
jne case.0x418a98.4
inc dword [0x438da0]
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 0x418dae
lea eax, [ebp - 0x58]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x418b97
sub eax, edx
push eax
lea ecx, [ebp - 0x58]
push ecx
lea edx, [ebp - 0x8d8]
push edx
call dword [sym.imp.MSVCR100.dll__strnicmp]
add esp, 0xc
test eax, eax
je case.0x418e46.4
lea eax, [ebp - 0x8d8]
push 0xa
push eax
call dword [sym.imp.MSVCR100.dll_strchr]
add esp, 8
test eax, eax
je 0x418bd8
call fcn.004048a0
lea eax, [ebp - 0x8d8]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x418be1
sub eax, edx
cmp eax, 0xc
ja 0x4195a5
cmp dword [0x439264], 2
je 0x418c17
lea ecx, [ebp - 0x8d8]
push ecx
mov ecx, esi
call fcn.00406800
mov ebx, eax
add esp, 4
test ebx, ebx
js 0x4195d4
mov eax, dword [0x439264]
add eax, 0xfffffffe
cmp eax, 7
ja case.0x418c28.4
jmp dword [eax*4 + 0x419834]
xor eax, eax
mov cl, byte [eax + 0x4392b0]
mov byte [ebp + eax - 0x14], cl
inc eax
test cl, cl
jne 0x418c31
mov eax, dword [ebp - 0x920]
lea edx, [ebp - 0x14]
sub edx, eax
jmp 0x418c50
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x418c50
mov eax, 8
lea esi, [ebp - 0x14]
call fcn.004045b0
mov edx, edi
mov ecx, esi
add edi, 0xd
mov eax, esi
sub edx, ecx
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x418c72
mov esi, dword [ebp - 0x91c]
jmp case.0x418c28.4
mov ecx, dword [ebp - 0x934]
inc dword [ecx + 0x14]
mov eax, dword [ecx + 0x14]
mov edx, dword [ebp - 0x938]
mov dword [edx + eax*4 - 4], ebx
mov eax, ebx
imul eax, eax, 0xd
add eax, dword [ecx + 0x20]
mov edx, edi
add edi, 0xd
lea ebx, [ebx]
mov cl, byte [eax]
mov byte [edx], cl
inc eax
inc edx
test cl, cl
jne 0x418cb0
jmp case.0x418c28.4
mov ecx, dword [ebp - 0x92c]
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 0x418ce4
jmp case.0x418c28.4
lea eax, [ebx + ebx*2]
shl eax, 4
add eax, dword [ebp - 0x930]
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 0x418d12
jmp case.0x418c28.4
lea ecx, [esi + esi*8]
shl ecx, 4
mov eax, dword [ecx + 0x437a94]
mov dword [eax + ebx*4], 1
mov eax, ebx
shl eax, 5
add eax, ebx
add eax, dword [ecx + 0x437a9c]
mov edx, edi
add edi, 0xd
mov cl, byte [eax]
mov byte [edx], cl
inc eax
inc edx
test cl, cl
jne 0x418d43
jmp case.0x418c28.4
mov eax, dword [0x437c5c]
lea ecx, [esi*8]
sub ecx, esi
mov ecx, dword [eax + ecx*8 + 0x30]
lea edx, [ebx + ebx*4]
lea eax, [ecx + edx*4]
mov edx, 1
mov word [eax + 4], dx
mov edx, edi
add eax, 6
add edi, 0xd
sub edx, eax
lea ebx, [ebx]
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x418d80
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
test eax, eax
jne 0x418b91
lea edx, [ebp - 0x58]
push edx
push str.Did_not_find__s__n
call dword [sym.imp.MSVCR100.dll_printf]
add esp, 8
call fcn.00404c60
inc dword [0x437d8c]
je 0x418dd2
call fcn.004048c0
push 0x64
call dword [sym.imp.MSVCR100.dll_exit]
mov al, byte [ebp - 0x8d7]
cmp al, 0x31
jne 0x418dee
xor esi, esi
mov dword [ebp - 0x91c], esi
jmp 0x418dfe
xor edx, edx
cmp al, 0x32
setne dl
inc edx
mov esi, edx
mov dword [ebp - 0x91c], edx
mov edi, dword [0x439264]
lea ecx, [ebp - 0x8d0]
cmp edi, 0xffffffff
je 0x41962d
cmp byte [ebp - 0x8d0], 0x20
jne 0x418e26
lea esp, [esp]
inc ecx
cmp byte [ecx], 0x20
je 0x418e20
mov edx, dword [esi*4 + 0x438510]
lea ecx, [ecx]
mov al, byte [ecx]
mov byte [edx], al
inc ecx
inc edx
test al, al
jne 0x418e30
lea eax, [edi - 2]
cmp eax, 6
ja case.0x418e46.4
jmp dword [eax*4 + 0x419854]
mov edi, dword [ebp - 0x91c]
mov eax, dword [edi*4 + 0x438510]
mov esi, 0x431ff8
call fcn.00404260
mov edx, dword [0x437c5c]
lea ecx, [edi*8]
sub ecx, edi
mov dword [edx + ecx*8], eax
mov esi, edi
jmp case.0x418e46.4
mov edi, dword [ebp - 0x91c]
mov eax, dword [edi*4 + 0x438510]
lea ebx, [edi*8]
sub ebx, edi
add ebx, ebx
add ebx, ebx
mov esi, 0x4320ec
add ebx, ebx
call fcn.00404260
mov ecx, dword [0x437c5c]
mov dword [ebx + ecx], eax
mov ecx, edi
call fcn.00405100
test eax, eax
jne 0x419657
sub edi, eax
je 0x418ee6
dec edi
je 0x418ed5
dec edi
jne 0x418ef4
mov edx, dword [0x437c5c]
mov eax, dword [edx + 0x74]
mov dword [0x4390b0], eax
jmp 0x418ef4
mov ecx, dword [0x437c5c]
mov edx, dword [ecx + 0x3c]
mov dword [0x438ed4], edx
jmp 0x418ef4
mov eax, dword [0x437c5c]
mov ecx, dword [eax + 4]
mov dword [0x43925c], ecx
mov esi, dword [ebp - 0x91c]
push esi
call fcn.00407d90
mov eax, dword [0x437c5c]
mov edi, dword [ebx + eax + 4]
mov edx, dword [ebx + eax]
imul edi, edi, 0x1a
lea esi, [esi + esi*4]
add esi, esi
add esi, esi
add esi, esi
lea ecx, [esi + 0x437f40]
add esp, 4
mov dword [ebp - 0x920], ecx
mov dword [ecx], edx
call fcn.00404b60
mov ecx, dword [0x437c5c]
mov ecx, dword [ebx + ecx + 4]
mov edx, ecx
imul edx, edx, 0xd
add edx, eax
lea edi, [ecx*4]
mov dword [esi + 0x437f60], eax
mov dword [esi + 0x437f64], edx
call fcn.00404b60
mov ecx, dword [0x437c5c]
cmp dword [ebx + ecx + 4], 0
mov edx, dword [ebp - 0x920]
mov dword [esi + 0x437f44], eax
mov dword [ebx + ecx + 8], edx
mov dword [ebx + ecx + 0xc], eax
mov dword [ebp - 0x928], 0
jle 0x418fa8
mov ecx, dword [ebx + ecx + 4]
mov eax, dword [ebp - 0x928]
lea esp, [esp]
mov edx, dword [esi + 0x437f44]
mov dword [edx + eax*4], 0xffffffff
inc eax
cmp eax, ecx
jl 0x418f90
mov dword [ebp - 0x928], eax
mov ecx, dword [ebp - 0x920]
call fcn.00405240
test eax, eax
jne 0x419687
cmp dword [ebp - 0x91c], 1
mov ebx, dword [ebp - 0x928]
setg al
mov dword [esi + 0x437f58], 0xffffffff
dec eax
mov dword [esi + 0x437f5c], eax
mov esi, dword [ebp - 0x91c]
jmp case.0x418e46.4
mov edi, dword [ebp - 0x91c]
mov eax, dword [edi*4 + 0x438510]
mov esi, 0x4320ec
call fcn.00404260
mov edx, dword [0x437c5c]
lea ecx, [edi*8]
sub ecx, edi
mov dword [edx + ecx*8], eax
mov ecx, edi
call fcn.00405980
test eax, eax
jne 0x4196bd
mov eax, edi
sub eax, 0
je 0x419128
dec eax
je 0x4190b3
dec eax
jne 0x41916e
mov eax, dword [0x437c5c]
mov eax, dword [eax + 0x74]
lea edi, [eax*8]
sub edi, eax
add edi, edi
add edi, edi
mov dword [0x4390b0], eax
call fcn.00404b60
mov ecx, dword [0x437c5c]
mov edx, dword [ecx + 0x74]
push eax
push edx
mov edx, dword [ecx + 0x70]
mov dword [ecx + 0x88], eax
mov ecx, 2
mov dword [0x438ef8], eax
call fcn.00405bb0
add esp, 8
test eax, eax
jne 0x41916e
mov eax, dword [0x438518]
push eax
push str.__s_is_an_empty_file_n
call dword [sym.imp.MSVCR100.dll_printf]
add esp, 8
call fcn.00404c60
inc dword [0x437d8c]
je 0x4190ab
call fcn.004048c0
push 1
call dword [sym.imp.MSVCR100.dll_exit]
mov eax, dword [0x437c5c]
mov eax, dword [eax + 0x3c]
lea edi, [eax*8]
sub edi, eax
add edi, edi
add edi, edi
mov dword [0x438ed4], eax
call fcn.00404b60
mov ecx, dword [0x437c5c]
mov edx, dword [ecx + 0x3c]
push eax
push edx
mov edx, dword [ecx + 0x38]
mov dword [ecx + 0x50], eax
mov ecx, 1
mov dword [0x4383d0], eax
call fcn.00405bb0
add esp, 8
test eax, eax
jne 0x41916e
mov ecx, dword [0x438514]
push ecx
push str.__s_is_an_empty_file_n
call dword [sym.imp.MSVCR100.dll_printf]
add esp, 8
call fcn.00404c60
inc dword [0x437d8c]
je 0x419120
call fcn.004048c0
push 1
call dword [sym.imp.MSVCR100.dll_exit]
mov eax, dword [0x437c5c]
mov eax, dword [eax + 4]
lea edi, [eax*8]
sub edi, eax
add edi, edi
add edi, edi
mov dword [0x43925c], eax
call fcn.00404b60
mov ecx, dword [0x437c5c]
mov edx, dword [ecx + 4]
push eax
push edx
mov edx, dword [ecx]
mov dword [ecx + 0x18], eax
xor ecx, ecx
mov dword [0x439250], eax
call fcn.00405bb0
add esp, 8
test eax, eax
je 0x4196ed
mov eax, dword [ebp - 0x91c]
push eax
call fcn.00407d90
mov esi, dword [ebp - 0x91c]
jmp 0x41942d
mov edi, dword [ebp - 0x91c]
lea eax, [edi*8]
sub eax, edi
add eax, eax
add eax, eax
add eax, eax
mov dword [ebp - 0x920], eax
mov eax, dword [edi*4 + 0x438510]
mov esi, 0x4320ec
call fcn.00404260
mov ecx, dword [0x437c5c]
mov edx, dword [ebp - 0x920]
mov dword [edx + ecx], eax
mov ecx, edi
call fcn.004060b0
test eax, eax
jne 0x41971c
mov eax, edi
sub eax, 0
je 0x41923f
dec eax
je 0x419211
dec eax
jne 0x419282
mov eax, dword [0x437c5c]
mov ecx, dword [eax + 0x74]
mov eax, dword [0x437df0]
lea edi, [eax + eax*2]
shl edi, 4
mov dword [0x4390b0], ecx
call fcn.00404b60
mov edx, dword [0x437c5c]
mov dword [0x439240], eax
mov dword [edx + 0x8c], eax
jmp 0x41927c
mov eax, dword [0x437c5c]
mov ecx, dword [eax + 0x3c]
mov eax, dword [0x437dc8]
lea edi, [eax + eax*2]
shl edi, 4
mov dword [0x438ed4], ecx
call fcn.00404b60
mov edx, dword [0x437c5c]
mov dword [0x439524], eax
mov dword [edx + 0x54], eax
jmp 0x41927c
mov eax, dword [0x437da0]
lea edi, [eax + eax*2]
shl edi, 4
call fcn.00404b60
mov edi, dword [0x437da0]
mov ecx, dword [0x437c5c]
mov edx, dword [ecx + 4]
add edi, edi
add edi, edi
add edi, edi
mov dword [0x438ed8], eax
mov dword [0x43925c], edx
mov dword [ecx + 0x1c], eax
call fcn.00404b60
mov dword [0x438528], eax
mov edi, dword [ebp - 0x91c]
push edi
call fcn.00407d90
mov eax, dword [0x437c5c]
mov ecx, dword [ebp - 0x920]
mov edx, dword [ecx + eax + 0x1c]
mov ecx, dword [ecx + eax]
add esp, 4
push edx
lea edx, [edi + edi*4]
mov edx, dword [edx*8 + 0x437da0]
push edx
push edi
call fcn.00406270
dec eax
add esp, 0xc
test eax, eax
jle 0x41974c
mov esi, dword [ebp - 0x91c]
jmp case.0x418e46.4
mov edi, dword [ebp - 0x91c]
mov eax, dword [edi*4 + 0x438510]
mov esi, 0x4320ec
call fcn.00404260
mov edx, dword [0x437c5c]
lea ecx, [edi*8]
sub ecx, edi
push edi
mov dword [edx + ecx*8], eax
call fcn.00406ad0
add esp, 4
test eax, eax
jne 0x41977c
mov eax, edi
sub eax, 0
je 0x41932d
dec eax
je 0x41931d
dec eax
jne 0x41933c
mov eax, dword [0x437c5c]
mov ecx, dword [eax + 0x74]
mov dword [0x4390b0], ecx
jmp 0x41933c
mov edx, dword [0x437c5c]
mov eax, dword [edx + 0x3c]
mov dword [0x438ed4], eax
jmp 0x41933c
mov ecx, dword [0x437c5c]
mov edx, dword [ecx + 4]
mov dword [0x43925c], edx
push edi
call fcn.00407d90
mov esi, dword [ebp - 0x91c]
lea eax, [edi + edi*8]
xor ecx, ecx
shl eax, 4
add esp, 4
cmp dword [eax + 0x437a98], 8
setge cl
mov dword [ebp - 0x93c], ecx
jmp case.0x418e46.4
cmp dword [0x439264], 0xffffffff
je 0x4197ac
mov al, byte [ebp - 0x8d7]
cmp al, 0x31
jne 0x419383
xor esi, esi
jmp 0x41938d
xor edx, edx
cmp al, 0x32
setne dl
lea esi, [edx + 1]
cmp byte [ebp - 0x8cf], 0x20
lea ecx, [ebp - 0x8cf]
jne 0x4193a6
lea esp, [esp]
inc ecx
cmp byte [ecx], 0x20
je 0x4193a0
mov edx, dword [esi*4 + 0x4383e0]
lea ecx, [ecx]
mov al, byte [ecx]
mov byte [edx], al
inc ecx
inc edx
test al, al
jne 0x4193b0
jmp case.0x418e46.4
mov al, byte [ebp - 0x8d4]
cmp al, 0x31
jne 0x4193e5
lea eax, [ebp - 0x8cf]
push eax
xor esi, esi
call dword [sym.imp.MSVCR100.dll_atoi]
mov ecx, dword [0x437c5c]
mov dword [0x43925c], eax
mov dword [ecx + 4], eax
jmp 0x419424
lea edx, [ebp - 0x8cf]
push edx
cmp al, 0x32
jne 0x41940b
mov esi, 1
call dword [sym.imp.MSVCR100.dll_atoi]
mov ecx, dword [0x437c5c]
mov dword [0x438ed4], eax
mov dword [ecx + 0x3c], eax
jmp 0x419424
mov esi, 2
call dword [sym.imp.MSVCR100.dll_atoi]
mov ecx, dword [0x437c5c]
mov dword [0x4390b0], eax
mov dword [ecx + 0x74], eax
add esp, 4
push esi
call fcn.00407d90
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
je 0x4197d6
mov edi, dword [sym.imp.MSVCR100.dll__strnicmp]
jmp 0x418180
lea ecx, [ebp - 0x58]
push ecx
push str.Did_not_find__s__n
call dword [sym.imp.MSVCR100.dll_printf]
add esp, 8
call fcn.00404c60
inc dword [0x437d8c]
je 0x419483
call fcn.004048c0
push 0x64
call dword [sym.imp.MSVCR100.dll_exit]
lea edx, [ebp - 0xd8]
push edx
call dword [sym.imp.MSVCR100.dll_printf]
add esp, 4
call fcn.00404c60
inc dword [0x437d8c]
je 0x4194ad
call fcn.004048c0
push 0x64
call dword [sym.imp.MSVCR100.dll_exit]
push str.id_variable_not_found__n
call dword [sym.imp.MSVCR100.dll_printf]
add esp, 4
call fcn.00404c60
inc dword [0x437d8c]
je 0x4194d5
call fcn.004048c0
push 0x64
call dword [sym.imp.MSVCR100.dll_exit]
push str.ID_var_should_not_be_chosen_for_ASCII_data_n
call dword [sym.imp.MSVCR100.dll_printf]
add esp, 4
call fcn.00404c60
inc dword [0x437d8c]
je 0x4194fd
call fcn.004048c0
push 0x64
call dword [sym.imp.MSVCR100.dll_exit]
push str.id_variable_not_found__n
call dword [sym.imp.MSVCR100.dll_printf]
add esp, 4
call fcn.00404c60
inc dword [0x437d8c]
je 0x419525
call fcn.004048c0
push 0x64
call dword [sym.imp.MSVCR100.dll_exit]
push str.ID_var_should_not_be_chosen_for_ASCII_data_n
call dword [sym.imp.MSVCR100.dll_printf]
add esp, 4
call fcn.00404c60
inc dword [0x437d8c]
je 0x41954d
call fcn.004048c0
push 0x64
call dword [sym.imp.MSVCR100.dll_exit]
push str.ID_specification_must_immediately_follow_begin_line__n
call dword [sym.imp.MSVCR100.dll_printf]
add esp, 4
call fcn.00404c60
inc dword [0x437d8c]
je 0x419575
call fcn.004048c0
push 0x64
call dword [sym.imp.MSVCR100.dll_exit]
push str.ID_specification_must_immediately_follow_begin_line__n
call dword [sym.imp.MSVCR100.dll_printf]
add esp, 4
call fcn.00404c60
inc dword [0x437d8c]
je 0x41959d
call fcn.004048c0
push 0x64
call dword [sym.imp.MSVCR100.dll_exit]
lea eax, [ebp - 0x8d8]
push eax
push str.Variable_name__s_is_too_long__n
call dword [sym.imp.MSVCR100.dll_printf]
add esp, 8
call fcn.00404c60
inc dword [0x437d8c]
je 0x4195cc
call fcn.004048c0
push 0x64
call dword [sym.imp.MSVCR100.dll_exit]
lea ecx, [ebp - 0x8d8]
push ecx
push str.Variable__s_not_found__n
call dword [sym.imp.MSVCR100.dll_printf]
add esp, 8
call fcn.00404c60
inc dword [0x437d8c]
je 0x4195fb
call fcn.004048c0
push 0x64
call dword [sym.imp.MSVCR100.dll_exit]
lea eax, [ebp - 0xd8]
push eax
call dword [sym.imp.MSVCR100.dll_printf]
add esp, 4
call fcn.00404c60
inc dword [0x437d8c]
je 0x419625
call fcn.004048c0
push 0x64
call dword [sym.imp.MSVCR100.dll_exit]
lea ecx, [ebp - 0x8c]
push ecx
call dword [sym.imp.MSVCR100.dll_printf]
add esp, 4
call fcn.00404c60
inc dword [0x437d8c]
je 0x41964f
call fcn.004048c0
push 0x64
call dword [sym.imp.MSVCR100.dll_exit]
mov edi, dword [edi*4 + 0x438510]
push edi
push str.__s_is_an_empty_file_n
call dword [sym.imp.MSVCR100.dll_printf]
add esp, 8
call fcn.00404c60
inc dword [0x437d8c]
je 0x41967f
call fcn.004048c0
push 1
call dword [sym.imp.MSVCR100.dll_exit]
mov edx, dword [ebp - 0x91c]
mov eax, dword [edx*4 + 0x438510]
push eax
push str.__s_is_an_empty_file_n
call dword [sym.imp.MSVCR100.dll_printf]
add esp, 8
call fcn.00404c60
inc dword [0x437d8c]
je 0x4196b5
call fcn.004048c0
push 1
call dword [sym.imp.MSVCR100.dll_exit]
mov edi, dword [edi*4 + 0x438510]
push edi
push str.__s_is_an_empty_file_n
call dword [sym.imp.MSVCR100.dll_printf]
add esp, 8
call fcn.00404c60
inc dword [0x437d8c]
je 0x4196e5
call fcn.004048c0
push 1
call dword [sym.imp.MSVCR100.dll_exit]
mov edx, dword [0x438510]
push edx
push str.__s_is_an_empty_file_n
call dword [sym.imp.MSVCR100.dll_printf]
add esp, 8
call fcn.00404c60
inc dword [0x437d8c]
je 0x419714
call fcn.004048c0
push 1
call dword [sym.imp.MSVCR100.dll_exit]
mov edi, dword [edi*4 + 0x438510]
push edi
push str.__s_is_an_empty_file_n
call dword [sym.imp.MSVCR100.dll_printf]
add esp, 8
call fcn.00404c60
inc dword [0x437d8c]
je 0x419744
call fcn.004048c0
push 1
call dword [sym.imp.MSVCR100.dll_exit]
mov edi, dword [edi*4 + 0x438510]
push edi
push str.__s_is_an_empty_file_n
call dword [sym.imp.MSVCR100.dll_printf]
add esp, 8
call fcn.00404c60
inc dword [0x437d8c]
je 0x419774
call fcn.004048c0
push 1
call dword [sym.imp.MSVCR100.dll_exit]
mov edi, dword [edi*4 + 0x438510]
push edi
push str.__s_is_an_empty_file_n
call dword [sym.imp.MSVCR100.dll_printf]
add esp, 8
call fcn.00404c60
inc dword [0x437d8c]
je 0x4197a4
call fcn.004048c0
push 1
call dword [sym.imp.MSVCR100.dll_exit]
lea eax, [ebp - 0x8c]
push eax
call dword [sym.imp.MSVCR100.dll_printf]
add esp, 4
call fcn.00404c60
inc dword [0x437d8c]
je 0x4197ce
call fcn.004048c0
push 0x64
call dword [sym.imp.MSVCR100.dll_exit]
lea ecx, [ebp - 0x918]
call fcn.00419870
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0042e325
mov esp, ebp
pop ebp
ret