Function at 0x403cb0
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x8c
push edi
push esi
push ebx
call fcn.0040fab4
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x60], 0
add esp, 0xfffffff8
push 0x401339
push 2
call sub.msvcrt.dll_setlocale
mov eax, dword [sym.imp.msvcrt.dll__iob]
lea edx, [eax + 0x20]
mov dword [0x42dc10], edx
mov dword [ebp - 0x70], eax
call fcn.0040aef0
call sub.msvcrt.dll__tzset
add esp, 0xfffffff8
lea ebx, [ebp + 0xc]
push ebx
lea ecx, [ebp + 8]
push ecx
call fcn.0040b324
add esp, 0x20
add esp, 0xfffffff4
push 1
call sub.msvcrt.dll__isatty
add esp, 0x10
mov edx, ebx
test eax, eax
je 0x403d64
mov eax, dword [ebp + 8]
cmp eax, 1
jne 0x403d38
call fcn.00402dac
add esp, 0xfffffff4
push 0
call sub.msvcrt.dll_exit
mov esi, esi
cmp eax, 2
jne 0x403d64
mov eax, dword [ebp + 0xc]
mov esi, dword [eax + 4]
mov edi, 0x403612
mov ecx, 3
cld
test al, 0
repe cmpsb byte [esi], byte es:[edi]
jne 0x403d64
call fcn.00402ec8
add esp, 0xfffffff4
push 0
call sub.msvcrt.dll_exit
nop
push 0x402e48
push 0x402e41
push edx
lea eax, [ebp + 8]
push eax
call fcn.0040b06c
mov dword [section..bss], 0
mov dword [0x42dc30], 0
mov dword [0x412010], 0
mov dword [ebp - 0x38], 0
add esp, 0xfffffff8
push 0x4025f8
push 2
call sub.msvcrt.dll_signal
add esp, 0x20
add esp, 0xfffffff8
push 0x4025f8
push 0xf
call sub.msvcrt.dll_signal
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x5c], 0
add esp, 0xfffffff8
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.004032b8
mov dword [ebp - 0x44], 1
add esp, 0x20
mov edx, dword [ebp - 0x44]
cmp edx, dword [ebp + 8]
jge 0x404922
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x44]
mov edx, dword [eax + ecx*4]
mov ecx, eax
cmp byte [edx], 0x2d
jne 0x404530
cmp byte [edx + 1], 0
je 0x40441c
inc edx
mov dword [ebp - 0x54], edx
mov esi, esi
mov edx, dword [ebp - 0x54]
mov al, byte [edx]
add al, 0xdf
movsx eax, al
cmp eax, 0x59
ja case.0x403e27.222
jmp dword [eax*4 + 0x403e30]
mov dword [0x4111c4], 0
mov dword [0x4111d8], 0
jmp case.0x403e27.144
mov ecx, dword [ebp - 0x54]
movsx eax, byte [ecx]
add eax, 0xffffffd0
mov dword [0x4111d8], eax
jmp case.0x403e27.144
mov dword [0x4111d4], 1
jmp case.0x403e27.144
mov dword [0x4110e8], 1
cmp dword [ebp - 0x48], 0
je 0x403ff8
add esp, 0xfffffff8
push 0x403615
jmp 0x40433b
mov dword [ebp - 0x48], 1
jmp case.0x403e27.144
mov dword [0x4110d0], 1
jmp case.0x403e27.144
cmp dword [0x4110cc], 1
je 0x40402f
add esp, 0xfffffff8
push 0x403631
push 0x10
call fcn.004023bc
add esp, 0x10
mov dword [0x4110cc], 0
jmp case.0x403e27.144
mov dword [0x4111ec], 0
jmp case.0x403e27.144
add esp, 0xfffffff8
push 0x403649
jmp 0x40433b
inc dword [0x4111d0]
jmp case.0x403e27.144
cmp dword [0x4110cc], 1
je 0x404087
add esp, 0xfffffff8
push 0x403631
push 0x10
call fcn.004023bc
add esp, 0x10
mov dword [0x4110cc], 3
jmp case.0x403e27.144
mov dword [ebp - 0x38], 1
jmp case.0x403e27.144
call fcn.00402dac
add esp, 0xfffffff4
push 0
jmp 0x405fc9
mov dword [0x4111c0], 0
jmp case.0x403e27.144
mov dword [0x4110ec], 1
jmp case.0x403e27.144
mov dword [0x4111c8], 1
jmp case.0x403e27.144
inc dword [0x4111dc]
jmp case.0x403e27.144
call fcn.00402650
add esp, 0xfffffff4
push 0
jmp 0x405fc9
mov dword [0x4111bc], 1
jmp case.0x403e27.144
mov dword [0x411200], 0
jmp case.0x403e27.144
mov dword [0x4110d8], 1
jmp case.0x403e27.144
cmp dword [ebp - 0x48], 0
je 0x404148
add esp, 0xfffffff8
push 0x403662
push 0x10
call fcn.004023bc
add esp, 0x10
cmp dword [0x411204], 0
je 0x404163
add esp, 0xfffffff8
push 0x40367e
push 0x10
call fcn.004023bc
add esp, 0x10
add esp, 0xfffffff8
push 0x403649
jmp 0x40433b
mov dword [0x4111f4], 0
mov eax, dword [0x4111cc]
test eax, eax
je case.0x403e27.144
dec eax
mov dword [0x4111cc], eax
jmp case.0x403e27.144
cmp dword [0x4111b8], 2
jne 0x4041af
add esp, 0xfffffff8
push 0x403693
push 0x10
call fcn.004023bc
add esp, 0x10
mov dword [0x4111b8], 1
jmp case.0x403e27.144
cmp dword [0x4111b8], 1
jne 0x4041db
add esp, 0xfffffff8
push 0x403693
push 0x10
call fcn.004023bc
add esp, 0x10
mov dword [0x4111b8], 2
jmp case.0x403e27.144
mov dword [0x4111e4], 1
jmp case.0x403e27.144
mov eax, dword [ebp - 0x54]
cmp byte [eax + 1], 0x74
jne 0x404214
inc eax
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x58], 0x4110e0
jmp 0x40421b
mov dword [ebp - 0x58], 0x4110dc
mov edx, dword [ebp - 0x58]
cmp dword [edx], 0
je 0x404243
add esp, 0xfffffff8
mov eax, 0x4036c7
cmp edx, 0x4110e0
jne 0x404238
mov eax, 0x4036b1
push eax
push 0x10
call fcn.004023bc
add esp, 0x10
mov dword [ebp - 0x48], 2
jmp case.0x403e27.144
mov dword [0x4110e4], 1
jmp case.0x403e27.144
cmp dword [0x4110cc], 1
je 0x40427b
add esp, 0xfffffff8
push 0x403631
push 0x10
call fcn.004023bc
add esp, 0x10
mov dword [0x4110cc], 2
jmp case.0x403e27.144
mov dword [0x4111f4], 1
inc dword [0x4111cc]
jmp case.0x403e27.144
mov ecx, dword [ebp - 0x54]
cmp byte [ecx + 1], 0x40
jne 0x4042b7
cmp byte [ecx + 2], 0
jne case.0x4045e5.5
cmp dword [0x42dc30], 0
jne 0x4042d2
add esp, 0xfffffff8
push 0x4036ec
push 0x10
call fcn.004023bc
add esp, 0x10
mov dword [ebp - 0x48], 5
jmp case.0x403e27.144
mov dword [0x4110d4], 1
jmp case.0x403e27.144
mov dword [0x4111e8], 1
jmp case.0x403e27.144
mov dword [ebp - 0x70], 0
cmp dword [ebp - 0x48], 2
jg 0x40431c
mov dword [ebp - 0x5c], 1
jmp case.0x403e27.144
mov esi, dword [0x42dc30]
mov edi, 0x40211e
mov ecx, 2
cld
test al, 0
repe cmpsb byte [esi], byte es:[edi]
jne 0x4043a5
add esp, 0xfffffff8
push 0x40370f
push 0x10
call fcn.004023bc
add esp, 0x10
jmp case.0x403e27.144
mov dword [ebp - 0x48], 4
mov eax, dword [0x4110cc]
dec eax
cmp eax, 1
ja 0x40436c
add esp, 0xfffffff4
push esi
call fcn.0040e638
jmp 0x404377
add esp, 0xfffffff8
push 1
push esi
call fcn.0040e810
add esp, 0x10
mov ebx, eax
test ebx, ebx
je 0x4043a5
cmp ebx, 0xffffffff
jne 0x404398
add esp, 0xfffffff8
push esi
push 0x40372b
call fcn.00402624
jmp 0x4043a2
add esp, 0xfffffff8
push esi
push ebx
call fcn.004023bc
add esp, 0x10
add esp, 0xfffffff8
push dword [sym.imp.msvcrt.dll__iob]
push 0x42d790
call fcn.00409bac
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x40434c
jmp case.0x403e27.144
mov dword [0x4111f8], 0
jmp case.0x403e27.144
mov dword [0x4111fc], 1
jmp case.0x403e27.144
add esp, 0xfffffffc
mov edx, dword [ebp - 0x54]
movsx eax, byte [edx]
push eax
push 0x40373e
push 0x42d790
call sub.msvcrt.dll_sprintf
add esp, 0xfffffff8
push 0x42d790
push 0x10
call fcn.004023bc
add esp, 0x20
inc dword [ebp - 0x54]
mov ecx, dword [ebp - 0x54]
cmp byte [ecx], 0
jne 0x403e14
jmp case.0x4045e5.5
cmp dword [ebp - 0x48], 4
ja case.0x4045e5.5
mov eax, dword [ebp - 0x48]
jmp dword [eax*4 + 0x404430]
call fcn.00403028
mov dword [ebp - 0x48], 3
cmp dword [ebp - 0x5c], 0
je case.0x4045e5.5
add esp, 0xfffffff8
push 0x40370f
push 0x10
call fcn.004023bc
add esp, 0x10
jmp case.0x4045e5.5
add esp, 0xfffffff8
push 0x403751
push 0x10
call fcn.004023bc
add esp, 0x10
add esp, 0xfffffff8
push 0x40375e
push 0x10
call fcn.004023bc
add esp, 0x10
mov dword [ebp - 0x70], 0
mov eax, dword [0x4110cc]
dec eax
cmp eax, 1
ja 0x4044c0
add esp, 0xfffffff4
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp - 0x44]
push dword [eax + edx*4]
call fcn.0040e638
jmp 0x4044d3
add esp, 0xfffffff8
push 1
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x44]
push dword [eax + ecx*4]
call fcn.0040e810
add esp, 0x10
mov ebx, eax
test ebx, ebx
je 0x404511
cmp ebx, 0xffffffff
jne 0x4044fc
add esp, 0xfffffff8
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp - 0x44]
push dword [eax + edx*4]
push 0x40372b
call fcn.00402624
jmp 0x40450e
add esp, 0xfffffff8
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x44]
push dword [eax + ecx*4]
push ebx
call fcn.004023bc
add esp, 0x10
cmp dword [ebp - 0x48], 3
jne case.0x4045e5.5
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x48], 4
jmp case.0x4045e5.5
cmp dword [0x411200], 0
jne 0x404544
mov dword [0x411200], edx
jmp case.0x4045e5.5
cmp dword [ebp - 0x48], 5
je 0x404922
cmp dword [ebp - 0x48], 6
jne 0x4045d8
mov eax, dword [0x4110cc]
dec eax
cmp eax, 1
ja 0x404574
add esp, 0xfffffff4
push 0x40376b
call fcn.0040e638
jmp 0x404583
add esp, 0xfffffff8
push 1
push 0x40376b
call fcn.0040e810
add esp, 0x10
mov ebx, eax
test ebx, ebx
je 0x4045c1
cmp ebx, 0xffffffff
jne 0x4045ac
add esp, 0xfffffff8
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp - 0x44]
push dword [eax + edx*4]
push 0x40372b
call fcn.00402624
jmp 0x4045be
add esp, 0xfffffff8
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x44]
push dword [eax + ecx*4]
push ebx
call fcn.004023bc
add esp, 0x10
cmp dword [ebp - 0x60], 0
jne 0x404922
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x60], eax
jmp 0x404922
cmp dword [ebp - 0x48], 7
ja case.0x4045e5.5
mov edx, dword [ebp - 0x48]
jmp dword [edx*4 + 0x4045ec]
add esp, 0xfffffff4
mov eax, dword [ebp - 0x44]
push dword [ecx + eax*4]
call fcn.00406080
mov dword [0x42dc30], eax
add esp, 0x10
test eax, eax
jne 0x404638
add esp, 0xfffffff8
push 0x40300e
push 4
call fcn.004023bc
add esp, 0x10
call fcn.00407e14
mov ebx, eax
test ebx, ebx
je 0x404655
add esp, 0xfffffff8
push dword [0x42dc30]
push ebx
call fcn.004023bc
add esp, 0x10
mov dword [ebp - 0x48], 3
cmp dword [ebp - 0x5c], 0
je 0x4046e0
jmp 0x4046bd
mov dword [ebp - 0x48], 4
mov eax, dword [0x4110cc]
dec eax
cmp eax, 1
ja 0x404684
add esp, 0xfffffff4
push esi
call fcn.0040e638
jmp 0x40468f
add esp, 0xfffffff8
push 1
push esi
call fcn.0040e810
add esp, 0x10
mov ebx, eax
test ebx, ebx
je 0x4046bd
cmp ebx, 0xffffffff
jne 0x4046b0
add esp, 0xfffffff8
push esi
push 0x40372b
call fcn.00402624
jmp 0x4046ba
add esp, 0xfffffff8
push esi
push ebx
call fcn.004023bc
add esp, 0x10
add esp, 0xfffffff8
push dword [sym.imp.msvcrt.dll__iob]
push 0x42d790
call fcn.00409bac
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x404664
mov dword [ebp - 0x5c], 0
cmp dword [0x4111b8], 2
jne case.0x4045e5.5
mov dword [ebp - 0x48], 6
jmp case.0x4045e5.5
add esp, 0xfffffff4
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp - 0x44]
mov edi, dword [eax + edx*4]
mov al, 0
cld
mov ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
push ecx
call sub.msvcrt.dll_malloc
mov dword [0x411208], eax
add esp, 0x10
test eax, eax
jne 0x404738
add esp, 0xfffffff8
push 0x40300e
push 4
call fcn.004023bc
add esp, 0x10
add esp, 0xfffffff8
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp - 0x44]
push dword [eax + edx*4]
push dword [0x411208]
call sub.msvcrt.dll_strcpy
add esp, 0x10
cmp dword [0x42dc30], 0
jne 0x4048f3
jmp 0x40490c
add esp, 0xfffffff4
lea edi, [ebp - 0x24]
push edi
lea esi, [ebp - 0x28]
push esi
lea ebx, [ebp - 0x2c]
push ebx
push 0x40376d
mov eax, dword [ebp - 0x44]
push dword [ecx + eax*4]
call sub.msvcrt.dll_sscanf
add esp, 0x20
cmp eax, 3
je 0x4047ac
add esp, 0xfffffff4
push ebx
push edi
push esi
push 0x403779
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp - 0x44]
push dword [eax + edx*4]
call sub.msvcrt.dll_sscanf
add esp, 0x20
cmp eax, 3
jne 0x4047c4
mov eax, dword [ebp - 0x28]
test eax, eax
jle 0x4047c4
cmp eax, 0xc
jg 0x4047c4
mov eax, dword [ebp - 0x24]
test eax, eax
jle 0x4047c4
cmp eax, 0x1f
jle 0x4047e5
add esp, 0xfffffff8
mov eax, 0x4037cc
cmp dword [ebp - 0x58], 0x4110e0
jne 0x4047da
mov eax, 0x40378c
push eax
push 0x10
call fcn.004023bc
add esp, 0x10
add esp, 0xfffffff8
push 0
push 0
push 0
push dword [ebp - 0x24]
push dword [ebp - 0x28]
push dword [ebp - 0x2c]
call fcn.0040a658
mov ecx, dword [ebp - 0x58]
mov dword [ecx], eax
add esp, 0x20
jmp 0x404752
mov eax, dword [0x4110cc]
dec eax
cmp eax, 1
ja 0x404828
add esp, 0xfffffff4
mov eax, dword [ebp - 0x44]
push dword [ecx + eax*4]
call fcn.0040e638
jmp 0x404838
add esp, 0xfffffff8
push 1
mov edx, dword [ebp - 0x44]
push dword [ecx + edx*4]
call fcn.0040e810
add esp, 0x10
mov ebx, eax
test ebx, ebx
je 0x404875
cmp ebx, 0xffffffff
jne 0x404860
add esp, 0xfffffff8
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x44]
push dword [eax + ecx*4]
push 0x40372b
call fcn.00402624
jmp 0x404872
add esp, 0xfffffff8
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp - 0x44]
push dword [eax + edx*4]
push ebx
call fcn.004023bc
add esp, 0x10
cmp dword [ebp - 0x48], 3
jne case.0x4045e5.5
mov ecx, dword [ebp - 0x44]
mov dword [ebp - 0x60], ecx
mov dword [ebp - 0x48], 4
jmp case.0x4045e5.5
add esp, 0xfffffff4
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp - 0x44]
mov edi, dword [eax + edx*4]
mov al, 0
cld
mov ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
push ecx
call sub.msvcrt.dll_malloc
mov dword [0x411204], eax
add esp, 0x10
test eax, eax
jne 0x4048d0
add esp, 0xfffffff8
push 0x40300e
push 4
call fcn.004023bc
add esp, 0x10
add esp, 0xfffffff8
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp - 0x44]
push dword [eax + edx*4]
push dword [0x411204]
call sub.msvcrt.dll_strcpy
add esp, 0x10
cmp dword [0x42dc30], 0
je 0x40490c
mov dword [ebp - 0x48], 3
cmp dword [ebp - 0x60], 0
jle case.0x4045e5.5
mov dword [ebp - 0x48], 4
jmp case.0x4045e5.5
mov dword [ebp - 0x48], 0
inc dword [ebp - 0x44]
mov ecx, dword [ebp - 0x44]
cmp ecx, dword [ebp + 8]
jl 0x403df0
cmp dword [ebp - 0x48], 7
je 0x40492e
cmp dword [ebp - 0x48], 1
jne 0x404940
add esp, 0xfffffff8
push 0x4037ef
push 0x10
call fcn.004023bc
add esp, 0x10
cmp dword [0x411220], 0
je 0x404974
cmp dword [ebp - 0x60], 0
jne 0x404974
cmp dword [ebp - 0x48], 2
jle 0x404962
mov eax, dword [0x4110cc]
add eax, 0xfffffffe
cmp eax, 1
jbe 0x404974
add esp, 0xfffffff8
push 0x40380d
push 0x10
call fcn.004023bc
add esp, 0x10
cmp dword [ebp - 0x48], 2
jg 0x4049e8
call fcn.00403028
mov dword [ebp - 0x70], 0
add esp, 0xfffffff8
push 0
push 0x40211e
call fcn.0040e810
mov ebx, eax
add esp, 0x10
test ebx, ebx
je 0x4049c9
cmp ebx, 0xffffffff
jne 0x4049b8
add esp, 0xfffffff8
push 0x40211e
push 0x40372b
call fcn.00402624
jmp 0x4049c6
add esp, 0xfffffff8
push 0x40211e
push ebx
call fcn.004023bc
add esp, 0x10
mov dword [ebp - 0x48], 4
cmp dword [ebp - 0x5c], 0
je 0x4049e8
add esp, 0xfffffff8
push 0x40370f
push 0x10
call fcn.004023bc
add esp, 0x10
cmp dword [ebp - 0x48], 4
je 0x404a37
cmp dword [ebp - 0x60], 0
jne 0x404a37
mov eax, dword [0x4110cc]
add eax, 0xfffffffe
cmp eax, 1
ja 0x404a37
mov esi, dword [0x41120c]
test esi, esi
je 0x404a37
nop
cmp dword [0x411220], 0
je 0x404a28
add esp, 0xfffffff8
push 0
push dword [esi + 0x4c]
call fcn.0040a054
add esp, 0x10
jmp 0x404a2d
mov eax, 1
mov dword [esi + 0x50], eax
mov esi, dword [esi + 0x5c]
test esi, esi
jne 0x404a0c
call fcn.00409eec
mov ebx, eax
test ebx, ebx
je 0x404a65
cmp ebx, 0x10
jne 0x404a54
add esp, 0xfffffff8
push 0x40382c
push 0x10
jmp 0x404a5d
add esp, 0xfffffff8
push 0x40384c
push ebx
call fcn.004023bc
add esp, 0x10
cmp dword [0x42dc40], 0
je 0x404a7f
add esp, 0xfffffff4
push dword [0x42d770]
call sub.msvcrt.dll_free
add esp, 0x10
cmp dword [0x411200], 0
jne 0x404a9a
add esp, 0xfffffff8
push 0x403869
push 0x10
call fcn.004023bc
add esp, 0x10
cmp dword [0x4111d8], 9
je 0x404ace
mov eax, dword [0x411200]
mov esi, eax
mov edi, 0x40387d
mov ecx, 2
cld
test al, 0
repe cmpsb byte [esi], byte es:[edi]
je 0x404ace
mov esi, eax
mov edi, 0x40387f
mov ecx, 2
cld
test al, 0
repe cmpsb byte [esi], byte es:[edi]
jne 0x404ad8
mov dword [0x411200], 0
cmp dword [0x4110cc], 0
jne 0x404b81
cmp dword [0x4111c4], 0xffffffff
jne 0x404b1b
cmp dword [0x4111bc], 0
jne 0x404b1b
cmp dword [0x4111b8], 0
jne 0x404b1b
cmp dword [0x411204], 0
jne 0x404b1b
cmp dword [0x4110d0], 0
jne 0x404b1b
cmp dword [0x4110d4], 0
je 0x404b81
add esp, 0xfffffff8
push 0x401339
push 0x40388c
call fcn.00402624
mov dword [0x4111c4], 0xffffffff
mov dword [0x4111bc], 0
mov dword [0x4111b8], 0
add esp, 0x10
mov eax, dword [0x411204]
test eax, eax
je 0x404b63
add esp, 0xfffffff4
push eax
call sub.msvcrt.dll_free
add esp, 0x10
mov dword [0x411204], 0
mov dword [0x4110d0], 0
mov dword [0x4110d4], 0
cmp dword [0x4111f0], 0
je 0x404bb2
cmp dword [0x4111c8], 0
je 0x404bb2
add esp, 0xfffffff8
push 0x401339
push 0x4038cc
call fcn.00402624
mov dword [0x4111f0], 0
add esp, 0x10
cmp dword [0x4111d0], 0
je 0x404bd9
cmp dword [0x4111d4], 0
je 0x404bd9
add esp, 0xfffffff8
push 0x401339
push 0x40390c
call fcn.00402624
add esp, 0x10
cmp dword [0x4110e4], 0
je 0x404c18
mov esi, dword [0x42dc30]
mov edi, 0x40211e
mov ecx, 2
cld
test al, 0
repe cmpsb byte [esi], byte es:[edi]
jne 0x404c18
mov dword [0x4110e4], 0
add esp, 0xfffffff8
push 0x401339
push 0x40394c
call fcn.00402624
add esp, 0x10
cmp dword [0x4110cc], 1
jne 0x404c27
cmp dword [ebp - 0x38], 0
je 0x404c50
mov esi, dword [0x42dc30]
mov edi, 0x40211e
mov ecx, 2
cld
test al, 0
repe cmpsb byte [esi], byte es:[edi]
jne 0x404c50
add esp, 0xfffffff8
push 0x40398c
push 0x10
call fcn.004023bc
add esp, 0x10
cmp dword [0x42dc40], 0
jne 0x404c7e
cmp dword [0x4110cc], 1
jne 0x404c68
cmp dword [ebp - 0x38], 0
je 0x404c7e
add esp, 0xfffffff8
push 0x4039b0
push dword [0x42dc30]
call fcn.00402624
add esp, 0x10
cmp dword [0x411208], 0
jne 0x404d3b
add esp, 0xfffffff8
push 0x2f
push dword [0x42dc30]
call fcn.0040aff4
mov dword [ebp - 0x54], eax
add esp, 0x10
test eax, eax
jne 0x404cd9
add esp, 0xfffffff8
push 0x5c
push dword [0x42dc30]
call fcn.0040aff4
mov dword [ebp - 0x54], eax
add esp, 0x10
test eax, eax
jne 0x404cd9
add esp, 0xfffffff8
push 0x3a
push dword [0x42dc30]
call fcn.0040aff4
mov dword [ebp - 0x54], eax
add esp, 0x10
test eax, eax
je 0x404d3b
mov eax, dword [ebp - 0x54]
cmp byte [eax], 0x3a
jne 0x404ce5
inc eax
mov dword [ebp - 0x54], eax
add esp, 0xfffffff4
mov eax, dword [ebp - 0x54]
sub eax, dword [0x42dc30]
inc eax
push eax
call sub.msvcrt.dll_malloc
mov dword [0x411208], eax
add esp, 0x10
test eax, eax
jne 0x404d16
add esp, 0xfffffff8
push 0x40300e
push 4
call fcn.004023bc
add esp, 0x10
mov edx, dword [ebp - 0x54]
movsx ebx, byte [edx]
mov byte [edx], 0
add esp, 0xfffffff8
push dword [0x42dc30]
push dword [0x411208]
call sub.msvcrt.dll_strcpy
mov ecx, dword [ebp - 0x54]
mov byte [ecx], bl
add esp, 0x10
mov dword [ebp - 0x48], 0
mov esi, dword [0x41120c]
test esi, esi
je 0x404e3e
cmp dword [esi + 0x50], 0
je 0x404e33
cmp dword [0x4110cc], 0
je 0x404e30
lea eax, [ebp - 0x10]
push eax
push 0
push 0
push dword [esi + 0x38]
call fcn.0040ee3c
mov edi, eax
add esp, 0x10
test edi, edi
je 0x404dc9
cmp edi, dword [0x4110dc]
jb 0x404dc9
mov eax, dword [0x4110e0]
test eax, eax
je 0x404d95
cmp edi, eax
jae 0x404dc9
mov eax, dword [0x4110cc]
add eax, 0xfffffffe
cmp eax, 1
ja 0x404e30
add esp, 0xfffffff8
lea eax, [ebp - 0x20]
push eax
push esi
call fcn.00408aac
add esp, 0x10
test al, 1
je 0x404dc4
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0xc], eax
jle 0x404dc9
jmp 0x404e30
cmp edi, dword [esi + 8]
ja 0x404e30
cmp dword [0x4110d0], 0
setne al
and eax, 0xff
add eax, eax
mov dword [esi + 0x50], eax
xor edx, edx
test edi, edi
je 0x404dfd
cmp edi, dword [0x4110dc]
jb 0x404dfd
mov eax, dword [0x4110e0]
test eax, eax
je 0x404df8
cmp edi, eax
jae 0x404dfd
mov edx, 1
mov dword [esi + 0x54], edx
cmp dword [0x4111cc], 0
je 0x404e33
mov eax, 0x4039cf
test edx, edx
je 0x404e17
mov eax, 0x4039c4
push eax
push dword [esi + 0x4c]
push 0x4039e0
push dword [0x42dc10]
call sub.msvcrt.dll_fprintf
add esp, 0x10
jmp 0x404e33
inc dword [ebp - 0x48]
mov esi, dword [esi + 0x5c]
test esi, esi
jne 0x404d50
mov eax, dword [0x411214]
mov dword [ebp - 0x40], eax
test eax, eax
je 0x404ee7
mov esi, esi
mov eax, dword [0x4110cc]
test eax, eax
je 0x404ebe
cmp eax, 3
je 0x404ebe
push 0
push 0
push 0
mov edx, dword [ebp - 0x40]
push dword [edx]
call fcn.0040ee3c
mov edi, eax
add esp, 0x10
test edi, edi
je 0x404ebe
cmp edi, dword [0x4110dc]
jb 0x404ebe
mov eax, dword [0x4110e0]
test eax, eax
je 0x404e8c
cmp edi, eax
jae 0x404ebe
add esp, 0xfffffff8
push dword [0x42dc30]
mov ecx, dword [ebp - 0x40]
push dword [ecx + 8]
call fcn.0040af40
add esp, 0x10
test eax, eax
jne 0x404ed4
mov esi, dword [0x42dc30]
mov edi, 0x40211e
mov ecx, 2
cld
test al, 0
repe cmpsb byte [esi], byte es:[edi]
je 0x404ed4
add esp, 0xfffffff4
mov eax, dword [ebp - 0x40]
push eax
call fcn.00409c34
mov dword [ebp - 0x40], eax
add esp, 0x10
jmp 0x404edd
mov edx, dword [ebp - 0x40]
mov edx, dword [edx + 0x14]
mov dword [ebp - 0x40], edx
cmp dword [ebp - 0x40], 0
jne 0x404e50
cmp dword [ebp - 0x48], 0
jne 0x4050d7
cmp dword [0x411214], 0
jne 0x4050d7
mov edx, dword [0x41120c]
test edx, edx
je 0x404f56
cmp dword [0x4110d8], 0
jne 0x4050d7
cmp dword [0x4111d0], 0
jne 0x4050d7
cmp dword [0x4111d4], 0
jne 0x4050d7
cmp dword [0x4110ec], 0
jne 0x4050d7
cmp dword [0x4110d0], 0
jne 0x4050d7
cmp dword [0x4110d4], 0
jne 0x4050d7
cmp dword [0x4110e4], 0
je 0x404f8c
test edx, edx
jne 0x404f6c
cmp dword [0x42dc50], 0
je 0x404f8c
add esp, 0xfffffff8
mov eax, dword [ebp + 0xc]
push dword [eax]
push dword [0x42dc30]
call fcn.0040311c
add esp, 0xfffffff4
push 0
jmp 0x405fc9
mov eax, dword [0x4110cc]
add eax, 0xfffffffe
cmp eax, 1
ja 0x404fa4
add esp, 0xfffffff4
push 0xc
jmp 0x405fc9
test edx, edx
jne 0x404fdc
cmp dword [0x4110d8], 0
jne 0x404fcc
cmp dword [0x4111d0], 0
jne 0x404fcc
cmp dword [0x4111d4], 0
jne 0x404fcc
cmp dword [0x4110ec], 0
je 0x404fdc
add esp, 0xfffffff8
push dword [0x42dc30]
push 0xd
jmp 0x4050cf
cmp dword [0x4111b8], 0
je 0x4050c4
cmp dword [0x411220], 0
jne 0x4050c4
cmp dword [ebp - 0x60], 0
jle 0x4050c4
mov ecx, 0x42d790
mov edx, 0x4039f7
mov eax, dword [0x4039f7]
mov dword [0x42d790], eax
mov eax, dword [edx + 4]
mov dword [ecx + 4], eax
mov al, byte [edx + 8]
mov byte [ecx + 8], al
mov dword [ebp - 0x44], 1
jmp 0x405059
add esp, 0xfffffff8
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp - 0x44]
push dword [eax + edx*4]
add esp, 0xfffffff8
push 0x403a00
push 0x42d790
call sub.msvcrt.dll_strcat
add esp, 0x10
push eax
call sub.msvcrt.dll_strcat
add esp, 0x10
inc dword [ebp - 0x44]
mov ecx, dword [ebp - 0x60]
cmp dword [ebp - 0x44], ecx
jl 0x40502c
add esp, 0xfffffff8
push 0x403a02
push 0x42d790
call sub.msvcrt.dll_strcat
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0x44], eax
add esp, 0x10
cmp eax, dword [ebp + 8]
jge 0x4050b9
lea esi, [esi]
add esp, 0xfffffff8
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp - 0x44]
push dword [eax + edx*4]
add esp, 0xfffffff8
push 0x403a00
push 0x42d790
call sub.msvcrt.dll_strcat
add esp, 0x10
push eax
call sub.msvcrt.dll_strcat
add esp, 0x10
inc dword [ebp - 0x44]
mov ecx, dword [ebp - 0x44]
cmp ecx, dword [ebp + 8]
jl 0x405084
add esp, 0xfffffff8
push 0x42d790
jmp 0x4050cd
add esp, 0xfffffff8
push dword [0x42dc30]
push 0xc
call fcn.004023bc
add esp, 0x10
mov dword [ebp - 0x74], 0
cmp dword [ebp - 0x38], 0
je 0x405103
cmp dword [ebp - 0x48], 0
jne 0x405103
cmp dword [0x42dc50], 0
jne 0x4050fc
cmp dword [0x41120c], 0
je 0x405103
mov dword [ebp - 0x74], 1
mov ebx, 0x40211e
mov edx, dword [0x42dc30]
mov esi, edx
mov edi, ebx
mov ecx, 2
cld
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x405122
sbb eax, eax
or al, 1
mov dword [ebp - 0x78], ebx
test eax, eax
je 0x4051dc
cmp dword [0x4110e8], 0
je 0x40514c
cmp dword [0x41120c], 0
jne 0x405168
cmp dword [0x42dc50], 0
je 0x4051dc
cmp dword [0x41120c], 0
jne 0x405168
cmp dword [0x42dc50], 0
jne 0x405168
add esp, 0xfffffff8
push 0x403a08
jmp 0x405170
add esp, 0xfffffff8
push 0x403a0c
push edx
call sub.msvcrt.dll_fopen
add esp, 0x10
mov dword [ebp - 0x64], eax
cmp dword [ebp - 0x64], 0
jne 0x405195
add esp, 0xfffffff8
push dword [0x42dc30]
push 0xf
call fcn.004023bc
add esp, 0x10
add esp, 0xfffffff4
mov eax, dword [ebp - 0x64]
push eax
call sub.msvcrt.dll_fclose
add esp, 0xfffffff4
push dword [0x42dc30]
call fcn.0040a914
mov dword [ebp - 0x30], eax
add esp, 0x20
cmp dword [0x41120c], 0
jne 0x4051e3
cmp dword [0x42dc50], 0
jne 0x4051e3
add esp, 0xfffffff4
push dword [0x42dc30]
call fcn.0040a798
add esp, 0x10
jmp 0x4051e3
mov dword [ebp - 0x30], 0
cmp dword [0x4110ec], 0
je 0x4051f6
mov dword [0x42dc50], 0
mov dword [ebp - 0x64], 0
mov dword [0x42dc00], 0
mov eax, dword [0x42dc30]
mov esi, eax
mov edi, dword [ebp - 0x78]
mov ecx, 2
cld
test al, 0
repe cmpsb byte [esi], byte es:[edi]
jne 0x4052e0
add esp, 0xfffffff4
add esp, 0xfffffff4
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x20
push eax
call sub.msvcrt.dll__fileno
push eax
call sub.msvcrt.dll__isatty
add esp, 0x20
test eax, eax
je 0x405254
add esp, 0xfffffff8
push 0x403a2c
push 5
call fcn.004023bc
add esp, 0x10
add esp, 0xfffffff8
push 0x8000
add esp, 0xfffffff4
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x20
push eax
call sub.msvcrt.dll__fileno
add esp, 0x10
push eax
call sub.msvcrt.dll__setmode
add esp, 0xfffffff8
push 0x403a08
add esp, 0xfffffff4
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x20
push eax
call sub.msvcrt.dll__fileno
add esp, 0x10
push eax
call sub.msvcrt.dll__fdopen
mov dword [ebp - 0x68], eax
mov dword [0x412010], eax
add esp, 0x20
add esp, 0xfffffff4
push 4
call sub.msvcrt.dll_malloc
mov dword [section..bss], eax
add esp, 0x10
test eax, eax
jne 0x4052cb
add esp, 0xfffffff8
push 0x403a5b
push 4
call fcn.004023bc
add esp, 0x10
mov edx, dword [section..bss]
movzx eax, word [0x40211e]
mov word [edx], ax
jmp 0x40541e
cmp dword [ebp - 0x74], 0
je 0x405380
add esp, 0xfffffff8
push 0x403a0c
push eax
call sub.msvcrt.dll_fopen
mov dword [ebp - 0x68], eax
add esp, 0x10
test eax, eax
jne 0x405315
add esp, 0xfffffff8
push dword [0x42dc30]
push 0xd
call fcn.004023bc
add esp, 0x10
mov eax, dword [0x42dc30]
mov dword [section..bss], eax
mov edx, dword [ebp - 0x68]
mov dword [0x412010], edx
add esp, 0xfffffffc
push 0
push dword [0x42d780]
push edx
call sub.msvcrt.dll_fseek
add esp, 0x10
test eax, eax
je 0x40536f
add esp, 0xfffffff8
push dword [0x42dc30]
add esp, 0xfffffff4
mov ecx, dword [ebp - 0x68]
push ecx
call sub.msvcrt.dll_ferror
add esp, 0x10
mov edx, 2
test eax, eax
je 0x405366
mov edx, 0xb
push edx
call fcn.004023bc
add esp, 0x10
mov eax, dword [0x42d780]
mov dword [0x42dc00], eax
jmp 0x40541e
cmp dword [0x41120c], 0
jne 0x405392
cmp dword [0x42dc50], 0
je 0x4053bd
add esp, 0xfffffff8
push 0x403a74
push eax
call sub.msvcrt.dll_fopen
mov dword [ebp - 0x64], eax
add esp, 0x10
test eax, eax
jne 0x4053bd
add esp, 0xfffffff8
push dword [0x42dc30]
push 0xd
call fcn.004023bc
add esp, 0x10
add esp, 0xfffffff4
push dword [0x42dc30]
call fcn.0040a95c
mov dword [section..bss], eax
add esp, 0x10
test eax, eax
jne 0x4053e9
add esp, 0xfffffff8
push 0x403a5b
push 4
call fcn.004023bc
add esp, 0x10
add esp, 0xfffffff8
push 0x403a08
push dword [section..bss]
call sub.msvcrt.dll_fopen
mov dword [ebp - 0x68], eax
mov dword [0x412010], eax
add esp, 0x10
test eax, eax
jne 0x40541e
add esp, 0xfffffff8
push dword [section..bss]
push 0xa
call fcn.004023bc
add esp, 0x10
add esp, 0xfffffff4
push 0x4000
call sub.msvcrt.dll_malloc
mov dword [ebp - 0x6c], eax
add esp, 0x10
test eax, eax
jne 0x405448
add esp, 0xfffffff8
push dword [section..bss]
push 4
call fcn.004023bc
add esp, 0x10
push 0x4000
push 0
mov eax, dword [ebp - 0x6c]
push eax
mov edx, dword [ebp - 0x68]
push edx
call sub.msvcrt.dll_setvbuf
mov esi, dword [0x42dc30]
mov edi, dword [ebp - 0x78]
mov ecx, 2
cld
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x405475
sbb eax, eax
or al, 1
add esp, 0x10
test eax, eax
je 0x4054cd
cmp dword [ebp - 0x74], 0
jne 0x4054cd
mov eax, dword [0x42dc50]
test eax, eax
je 0x4054c3
add esp, 0xfffffffc
push eax
mov ecx, dword [ebp - 0x68]
push ecx
mov eax, dword [ebp - 0x64]
push eax
call fcn.0040aa14
mov ebx, eax
add esp, 0x10
test ebx, ebx
je 0x4054c3
add esp, 0xfffffff8
cmp ebx, 0xa
jne 0x4054b4
mov eax, dword [section..bss]
jmp 0x4054b9
mov eax, dword [0x42dc30]
push eax
push ebx
call fcn.004023bc
add esp, 0x10
mov eax, dword [0x42dc50]
mov dword [0x42dc00], eax
mov dword [ebp - 0x50], 0
mov edi, 0x41120c
mov esi, dword [0x41120c]
test esi, esi
je 0x405783
nop
cmp dword [esi + 0x50], 1
jne 0x405730
mov eax, dword [0x4110cc]
test eax, eax
je 0x40568c
cmp dword [0x4111f4], 0
je 0x405546
cmp eax, 3
jne 0x40551c
add esp, 0xfffffffc
push dword [esi + 0x4c]
push 0x403a77
jmp 0x405527
add esp, 0xfffffffc
push dword [esi + 0x4c]
push 0x403a86
push dword [0x42dc10]
call sub.msvcrt.dll_fprintf
add esp, 0x10
add esp, 0xfffffff4
push dword [0x42dc10]
call sub.msvcrt.dll_fflush
add esp, 0x10
add esp, 0xfffffff8
mov edx, dword [ebp - 0x68]
push edx
push esi
call fcn.00409000
mov ebx, eax
add esp, 0x10
test ebx, ebx
je 0x4055b6
cmp ebx, 0x12
je 0x4055c4
cmp ebx, 0xffffffff
je 0x4055b6
cmp dword [0x4111f4], 0
je 0x405590
add esp, 0xfffffff8
push dword [0x42dc10]
push 0xa
call sub.msvcrt.dll_putc
add esp, 0xfffffff4
push dword [0x42dc10]
call sub.msvcrt.dll_fflush
add esp, 0x20
add esp, 0xfffffffc
push dword [esi + 0x38]
push 0x403a93
push 0x42d790
call sub.msvcrt.dll_sprintf
add esp, 0xfffffff8
push 0x42d790
push ebx
call fcn.004023bc
add esp, 0x20
cmp ebx, 0x12
je 0x4055c4
cmp ebx, 0xffffffff
jne 0x405776
mov dword [ebp - 0x50], 1
cmp dword [0x4111f4], 0
je 0x4055f5
add esp, 0xfffffff8
push dword [0x42dc10]
push 0xa
call sub.msvcrt.dll_putc
add esp, 0xfffffff4
push dword [0x42dc10]
call sub.msvcrt.dll_fflush
add esp, 0x20
cmp ebx, 0x12
jne 0x40561c
add esp, 0xfffffff4
push dword [esi + 0x4c]
call sub.msvcrt.dll_perror
add esp, 0xfffffff8
push dword [esi + 0x4c]
push 0x403aa2
call fcn.00402624
add esp, 0x20
jmp 0x40562f
add esp, 0xfffffff8
push dword [esi + 0x4c]
push 0x403acc
call fcn.00402624
add esp, 0x10
add esp, 0xfffffff8
push dword [esi + 0x4c]
push 0x403af4
call fcn.00402624
add esp, 0xfffffffc
mov ecx, dword [ebp - 0x68]
push ecx
mov eax, dword [ebp - 0x64]
push eax
push esi
call fcn.00408738
mov ebx, eax
add esp, 0x20
test ebx, ebx
je 0x40567f
add esp, 0xfffffffc
push dword [esi + 0x4c]
push 0x403b10
push 0x42d790
call sub.msvcrt.dll_sprintf
add esp, 0xfffffff8
push 0x42d790
push ebx
call fcn.004023bc
add esp, 0x20
mov dword [esi + 0x50], 0
jmp 0x405776
cmp dword [0x4111f4], 0
je 0x4056bc
add esp, 0xfffffffc
push dword [esi + 0x4c]
push 0x403b1f
push dword [0x42dc10]
call sub.msvcrt.dll_fprintf
add esp, 0xfffffff4
push dword [0x42dc10]
call sub.msvcrt.dll_fflush
add esp, 0x20
mov ebx, dword [esi + 0x5c]
add esp, 0xfffffff4
push dword [esi + 0x48]
call sub.msvcrt.dll_free
add esp, 0xfffffff4
push dword [esi + 0x4c]
call sub.msvcrt.dll_free
add esp, 0x20
cmp dword [esi + 0x1c], 0
je 0x4056ec
add esp, 0xfffffff4
push dword [esi + 0x3c]
call sub.msvcrt.dll_free
add esp, 0x10
cmp dword [esi + 0x20], 0
je 0x405706
mov eax, dword [esi + 0x40]
cmp eax, dword [esi + 0x3c]
je 0x405706
add esp, 0xfffffff4
push eax
call sub.msvcrt.dll_free
add esp, 0x10
cmp dword [esi + 0x24], 0
je 0x40571a
add esp, 0xfffffff4
push dword [esi + 0x44]
call sub.msvcrt.dll_free
add esp, 0x10
add esp, 0xfffffff4
push esi
call sub.msvcrt.dll_free
mov dword [edi], ebx
dec dword [0x42dc40]
add esp, 0x10
jmp 0x405779
cmp dword [ebp - 0x74], 0
jne 0x405776
add esp, 0xfffffffc
mov edx, dword [ebp - 0x68]
push edx
mov ecx, dword [ebp - 0x64]
push ecx
push esi
call fcn.00408738
mov ebx, eax
add esp, 0x10
test ebx, ebx
je 0x405776
add esp, 0xfffffffc
push dword [esi + 0x4c]
push 0x403b10
push 0x42d790
call sub.msvcrt.dll_sprintf
add esp, 0xfffffff8
push 0x42d790
push ebx
call fcn.004023bc
add esp, 0x20
lea edi, [esi + 0x5c]
mov esi, dword [edi]
test esi, esi
jne 0x4054e8
mov eax, dword [0x411214]
mov dword [ebp - 0x40], eax
test eax, eax
je 0x40598d
nop
add esp, 0xfffffff4
push 0x60
call sub.msvcrt.dll_malloc
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x4057b9
add esp, 0xfffffff8
push 0x403b2d
push 4
call fcn.004023bc
add esp, 0x10
mov dword [esi + 0x5c], 0
mov edx, dword [ebp - 0x40]
mov eax, dword [edx]
mov dword [esi + 0x38], eax
mov dword [edx], 0
mov eax, dword [edx + 4]
mov dword [esi + 0x48], eax
mov dword [edx + 4], 0
mov eax, dword [edx + 8]
mov dword [esi + 0x4c], eax
mov dword [edx + 8], 0
mov dword [esi + 0x24], 0
mov dword [esi + 0x20], 0
mov dword [esi + 0x1c], 0
mov dword [esi + 0x40], 0
mov dword [esi + 0x3c], 0
mov dword [esi + 0x50], 1
mov eax, dword [edx + 0xc]
mov dword [esi + 0x58], eax
cmp dword [0x4111f4], 0
je 0x405848
add esp, 0xfffffffc
push dword [esi + 0x4c]
push 0x403b4a
push dword [0x42dc10]
call sub.msvcrt.dll_fprintf
add esp, 0xfffffff4
push dword [0x42dc10]
call sub.msvcrt.dll_fflush
add esp, 0x20
add esp, 0xfffffff8
mov ecx, dword [ebp - 0x68]
push ecx
push esi
call fcn.00409000
mov ebx, eax
add esp, 0x10
test ebx, ebx
je 0x4058b8
cmp ebx, 0x12
je 0x4058c6
cmp ebx, 0xffffffff
je 0x4058b8
cmp dword [0x4111f4], 0
je 0x405892
add esp, 0xfffffff8
push dword [0x42dc10]
push 0xa
call sub.msvcrt.dll_putc
add esp, 0xfffffff4
push dword [0x42dc10]
call sub.msvcrt.dll_fflush
add esp, 0x20
add esp, 0xfffffffc
push dword [esi + 0x4c]
push 0x403a93
push 0x42d790
call sub.msvcrt.dll_sprintf
add esp, 0xfffffff8
push 0x42d790
push ebx
call fcn.004023bc
add esp, 0x20
cmp ebx, 0x12
je 0x4058c6
cmp ebx, 0xffffffff
jne 0x405968
mov dword [ebp - 0x50], 1
cmp dword [0x4111f4], 0
je 0x4058f7
add esp, 0xfffffff8
push dword [0x42dc10]
push 0xa
call sub.msvcrt.dll_putc
add esp, 0xfffffff4
push dword [0x42dc10]
call sub.msvcrt.dll_fflush
add esp, 0x20
cmp ebx, 0x12
jne 0x405920
add esp, 0xfffffff4
push 0x403b57
call sub.msvcrt.dll_perror
add esp, 0xfffffff8
push dword [esi + 0x4c]
push 0x403aa2
call fcn.00402624
add esp, 0x20
jmp 0x405933
add esp, 0xfffffff8
push dword [esi + 0x4c]
push 0x403acc
call fcn.00402624
add esp, 0x10
add esp, 0xfffffff4
push dword [esi + 0x38]
call sub.msvcrt.dll_free
add esp, 0xfffffff4
push dword [esi + 0x48]
call sub.msvcrt.dll_free
add esp, 0x20
add esp, 0xfffffff4
push dword [esi + 0x4c]
call sub.msvcrt.dll_free
add esp, 0xfffffff4
push esi
call sub.msvcrt.dll_free
add esp, 0x20
jmp 0x405973
mov dword [edi], esi
lea edi, [esi + 0x5c]
inc dword [0x42dc40]
add esp, 0xfffffff4
mov eax, dword [ebp - 0x40]
push eax
call fcn.00409c34
mov dword [ebp - 0x40], eax
add esp, 0x10
test eax, eax
jne 0x405794
mov eax, dword [0x411204]
test eax, eax
je 0x4059ac
add esp, 0xfffffff4
push eax
call sub.msvcrt.dll_free
mov dword [0x411204], 0
add esp, 0x10
cmp dword [0x4110d0], 0
je 0x405b00
cmp dword [ebp - 0x70], 0
jne 0x4059e7
add esp, 0xfffffff8
push 0x403299
add esp, 0xfffffff4
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
push eax
call sub.msvcrt.dll__fileno
add esp, 0x10
push eax
call sub.msvcrt.dll__fdopen
mov dword [ebp - 0x70], eax
add esp, 0x10
add esp, 0xfffffff4
push 0x101
call sub.msvcrt.dll_malloc
mov dword [ebp - 0x3c], eax
add esp, 0x10
test eax, eax
jne 0x405a10
add esp, 0xfffffff8
push 0x403b63
push 4
call fcn.004023bc
add esp, 0x10
mov esi, dword [0x41120c]
test esi, esi
je 0x405af1
mov esi, esi
cmp dword [esi + 0x50], 0
je 0x405ae6
cmp dword [0x4111f4], 0
je 0x405a4c
add esp, 0xfffffffc
push dword [esi + 0x4c]
push 0x403b7d
push dword [0x42dc10]
call sub.msvcrt.dll_fprintf
add esp, 0x10
add esp, 0xfffffffc
mov edx, dword [ebp - 0x70]
push edx
push 0x101
mov ecx, dword [ebp - 0x3c]
push ecx
call sub.msvcrt.dll_fgets
add esp, 0x10
test eax, eax
je 0x405ae6
add esp, 0xfffffff4
mov edi, dword [ebp - 0x3c]
mov al, 0
cld
mov ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ebx, ecx
not ebx
lea eax, [ebx - 1]
mov dword [ebp - 0x48], eax
push ebx
call sub.msvcrt.dll_malloc
mov dword [ebp - 0x54], eax
add esp, 0x10
test eax, eax
jne 0x405ab0
add esp, 0xfffffff4
mov edx, dword [ebp - 0x3c]
push edx
call sub.msvcrt.dll_free
add esp, 0xfffffff8
push 0x403b63
push 4
call fcn.004023bc
add esp, 0x20
add esp, 0xfffffff8
mov ecx, dword [ebp - 0x3c]
push ecx
mov eax, dword [ebp - 0x54]
push eax
call sub.msvcrt.dll_strcpy
add esp, 0x10
mov edx, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x54]
cmp byte [ecx + edx - 1], 0xa
jne 0x405ada
add ebx, 0xfffffffe
mov dword [ebp - 0x48], ebx
mov byte [ebx + ecx], 0
mov eax, dword [ebp - 0x54]
mov dword [esi + 0x44], eax
mov edx, dword [ebp - 0x48]
mov dword [esi + 0x24], edx
mov esi, dword [esi + 0x5c]
test esi, esi
jne 0x405a20
add esp, 0xfffffff4
mov ecx, dword [ebp - 0x3c]
push ecx
call sub.msvcrt.dll_free
add esp, 0x10
cmp dword [0x4110d4], 0
je 0x405d74
cmp dword [ebp - 0x70], 0
jne 0x405b3b
add esp, 0xfffffff8
push 0x403299
add esp, 0xfffffff4
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
push eax
call sub.msvcrt.dll__fileno
add esp, 0x10
push eax
call sub.msvcrt.dll__fdopen
mov dword [ebp - 0x70], eax
add esp, 0x10
add esp, 0xfffffff4
push 0x101
call sub.msvcrt.dll_malloc
mov dword [ebp - 0x3c], eax
add esp, 0x10
test eax, eax
jne 0x405b64
add esp, 0xfffffff8
push 0x403b63
push 4
call fcn.004023bc
add esp, 0x10
cmp dword [0x4111f4], 0
je 0x405bdb
cmp dword [0x42dc20], 0
je 0x405bdb
add esp, 0xfffffff8
push dword [0x42dc10]
push 0x403b94
call sub.msvcrt.dll_fputs
push dword [0x42dc10]
push dword [0x42dc20]
push 1
push dword [0x411210]
call sub.msvcrt.dll_fwrite
mov edx, dword [0x42dc20]
mov eax, dword [0x411210]
add esp, 0x20
cmp byte [eax + edx - 1], 0xa
je 0x405bca
add esp, 0xfffffff8
push dword [0x42dc10]
push 0xa
call sub.msvcrt.dll_putc
add esp, 0x10
add esp, 0xfffffff4
push dword [0x411210]
call sub.msvcrt.dll_free
add esp, 0x10
add esp, 0xfffffff4
push 1
call sub.msvcrt.dll_malloc
mov dword [0x411210], eax
add esp, 0x10
test eax, eax
jne 0x405c03
add esp, 0xfffffff8
push 0x403bb2
push 4
call fcn.004023bc
add esp, 0x10
mov eax, dword [0x411210]
mov byte [eax], 0
cmp dword [0x4111f4], 0
je 0x405d18
add esp, 0xfffffff8
push dword [0x42dc10]
push 0x403bec
call sub.msvcrt.dll_fputs
jmp 0x405d15
mov edi, dword [ebp - 0x3c]
mov al, 0
cld
mov ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
lea ebx, [ecx - 1]
mov edx, dword [ebp - 0x3c]
cmp byte [edx + ebx - 1], 0xa
jne 0x405c52
lea ebx, [ecx - 2]
mov byte [ebx + edx], al
add esp, 0xfffffff4
mov edi, dword [0x411210]
cmp byte [edi], 0
je 0x405c74
mov al, 0
cld
mov ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
lea eax, [ecx + ebx + 2]
jmp 0x405c77
lea eax, [ebx + 1]
push eax
call sub.msvcrt.dll_malloc
mov dword [ebp - 0x54], eax
add esp, 0x10
test eax, eax
jne 0x405ca5
add esp, 0xfffffff4
mov edx, dword [ebp - 0x3c]
push edx
call sub.msvcrt.dll_free
add esp, 0xfffffff8
push 0x403b63
push 4
call fcn.004023bc
add esp, 0x20
mov eax, dword [0x411210]
cmp byte [eax], 0
je 0x405ce0
add esp, 0xfffffff8
mov ecx, dword [ebp - 0x3c]
push ecx
add esp, 0xfffffff8
push 0x403c19
add esp, 0xfffffff8
push eax
mov eax, dword [ebp - 0x54]
push eax
call sub.msvcrt.dll_strcpy
add esp, 0x10
push eax
call sub.msvcrt.dll_strcat
add esp, 0x10
push eax
call sub.msvcrt.dll_strcat
jmp 0x405cfc
add esp, 0xfffffff8
mov eax, 0x403c19
mov edx, dword [ebp - 0x3c]
cmp byte [edx], 0
je 0x405cf2
mov eax, edx
push eax
mov ecx, dword [ebp - 0x54]
push ecx
call sub.msvcrt.dll_strcpy
add esp, 0x10
add esp, 0xfffffff4
push dword [0x411210]
call sub.msvcrt.dll_free
mov eax, dword [ebp - 0x54]
mov dword [0x411210], eax
add esp, 0x10
add esp, 0xfffffffc
mov edx, dword [ebp - 0x70]
push edx
push 0x101
mov ecx, dword [ebp - 0x3c]
push ecx
call sub.msvcrt.dll_fgets
add esp, 0x10
test eax, eax
je 0x405d4c
mov esi, dword [ebp - 0x3c]
mov edi, 0x403c16
mov ecx, 3
cld
test al, 0
repe cmpsb byte [esi], byte es:[edi]
jne 0x405c30
add esp, 0xfffffff4
mov eax, dword [ebp - 0x3c]
push eax
call sub.msvcrt.dll_free
mov edi, dword [0x411210]
mov al, 0
cld
mov ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [0x42dc20], ecx
add esp, 0x10
mov dword [ebp - 0x48], 0
mov edx, dword [0x42dc00]
mov dword [ebp - 0x34], edx
xor edi, edi
mov dword [ebp - 0x4c], 0
mov esi, dword [0x41120c]
test esi, esi
je 0x405de5
nop
add esp, 0xfffffff8
mov ecx, dword [ebp - 0x68]
push ecx
push esi
call fcn.0040826c
mov ebx, eax
add esp, 0x10
test ebx, ebx
je 0x405dc0
add esp, 0xfffffff8
push dword [section..bss]
push ebx
call fcn.004023bc
add esp, 0x10
mov eax, dword [esi + 0x20]
add eax, 0x2e
add eax, dword [esi + 0x18]
add eax, dword [esi + 0x24]
add dword [0x42dc00], eax
mov eax, dword [esi + 0x14]
add dword [ebp - 0x4c], eax
add edi, dword [esi + 0x10]
inc dword [ebp - 0x48]
mov esi, dword [esi + 0x5c]
test esi, esi
jne 0x405d98
cmp dword [ebp - 0x48], 0
jne 0x405e00
add esp, 0xfffffff8
push 0x401339
push 0x403c1c
call fcn.00402624
add esp, 0x10
cmp dword [0x4111cc], 0
je 0x405e32
add esp, 0xfffffff4
add esp, 0xfffffff8
push edi
mov edx, dword [ebp - 0x4c]
push edx
call fcn.00408dec
push eax
push edi
mov ecx, dword [ebp - 0x4c]
push ecx
push 0x403c2c
push dword [0x42dc10]
call sub.msvcrt.dll_fprintf
add esp, 0x30
mov edi, dword [0x42dc00]
sub edi, dword [ebp - 0x34]
add esp, 0xfffffff8
mov eax, dword [ebp - 0x68]
push eax
push dword [0x411210]
push dword [0x42dc20]
mov edx, dword [ebp - 0x34]
push edx
push edi
mov ecx, dword [ebp - 0x48]
push ecx
call fcn.004085a4
mov ebx, eax
add esp, 0x20
test ebx, ebx
je 0x405e77
add esp, 0xfffffff8
push dword [section..bss]
push ebx
call fcn.004023bc
add esp, 0x10
mov dword [0x412010], 0
add esp, 0xfffffff4
mov eax, dword [ebp - 0x68]
push eax
call sub.msvcrt.dll_fclose
add esp, 0x10
test eax, eax
je 0x405eb6
add esp, 0xfffffff8
push dword [section..bss]
mov eax, 0xa
cmp dword [ebp - 0x74], 0
je 0x405ead
mov eax, 0xe
push eax
call fcn.004023bc
add esp, 0x10
cmp dword [ebp - 0x64], 0
je 0x405ecb
add esp, 0xfffffff4
mov edx, dword [ebp - 0x64]
push edx
call sub.msvcrt.dll_fclose
add esp, 0x10
call fcn.0040ba74
cmp dword [0x4110e4], 0
je 0x405eef
add esp, 0xfffffff8
mov eax, dword [ebp + 0xc]
push dword [eax]
push dword [section..bss]
call fcn.0040311c
add esp, 0x10
mov eax, dword [0x42dc30]
mov esi, eax
mov edi, dword [ebp - 0x78]
mov ecx, 2
cld
test al, 0
repe cmpsb byte [esi], byte es:[edi]
je 0x405f73
cmp dword [ebp - 0x74], 0
jne 0x405f73
add esp, 0xfffffff8
push dword [section..bss]
push eax
call fcn.0040a7cc
mov ebx, eax
add esp, 0x10
test ebx, ebx
je 0x405f62
add esp, 0xfffffff8
push dword [section..bss]
push 0x403c5d
call fcn.00402624
add esp, 0xfffffff4
push dword [section..bss]
call sub.msvcrt.dll_free
mov dword [section..bss], 0
add esp, 0x20
add esp, 0xfffffff8
push 0x403c8c
push ebx
call fcn.004023bc
add esp, 0x10
add esp, 0xfffffff4
push dword [section..bss]
call sub.msvcrt.dll_free
add esp, 0x10
mov dword [section..bss], 0
cmp dword [ebp - 0x30], 0
je 0x405fa9
mov eax, dword [0x42dc30]
mov esi, eax
mov edi, dword [ebp - 0x78]
mov ecx, 2
cld
test al, 0
repe cmpsb byte [esi], byte es:[edi]
je 0x405fa9
add esp, 0xfffffff8
mov ecx, dword [ebp - 0x30]
push ecx
push eax
call fcn.0040a938
add esp, 0x10
add esp, 0xfffffff4
mov eax, dword [ebp - 0x6c]
push eax
call sub.msvcrt.dll_free
add esp, 0xfffffff4
add esp, 0x10
xor eax, eax
cmp dword [ebp - 0x50], 0
je 0x405fc8
mov eax, 0x12
push eax
call fcn.004021f8
lea esp, [ebp - 0x98]
pop ebx
pop esi
pop edi
leave
ret