Function at 0x446cf0
Capabilities:
Read file on windows
Resolve path using msvcrt

Disassembly:
sub esp, 0x850
mov ecx, dword [esp + 0x858]
push ebx
mov ebx, dword [esp + 0x858]
mov byte [esp + 0x23], 0
test ecx, ecx
mov eax, dword [ebx + 0x1dc]
mov ecx, dword [0x481110]
mov dword [esp + 0x48], eax
mov eax, dword [0x481118]
setne byte [esp + 0xb]
test eax, eax
mov dword [esp + 0x3c], 0
mov dword [esp + 0xc], ecx
jbe 0x447593
push ebp
push esi
push edi
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x86c]
mov edx, dword [esi]
push edx
push eax
call fcn.0040ce00
mov ecx, dword [esi]
xor edi, edi
push ecx
mov ebp, eax
mov dword [esp + 0x14], edi
call fcn.00451ba0
mov esi, 0x404734
mov dword [esp + 0x20], eax
mov eax, dword [ebp]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x446d91
test cl, cl
je 0x446d8d
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x446d91
add eax, 2
add esi, 2
test cl, cl
jne 0x446d6d
xor eax, eax
jmp 0x446d96
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x446d9f
call fcn.00446b80
mov eax, dword [ebp]
mov esi, dword [sym.imp.MSVCRT.dll__stricmp]
push 0x4081a8
push eax
call esi
add esp, 8
test eax, eax
jne 0x446e30
cmp word [ebp + 4], ax
jbe 0x449e2b
mov ecx, dword [ebp + 0xc]
cmp byte [ecx], 0
je 0x449e2b
lea edx, [esp + 0x1c]
mov esi, 1
push edx
push 0
push ebp
mov dword [esp + 0x1c], esi
call fcn.0040cf90
test al, al
je 0x449eb5
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x446e10
lea ecx, [eax - 1]
test eax, ecx
jne 0x446e10
mov ecx, dword [ebx + 0x19c]
or ecx, esi
mov dword [ebx + 0x19c], ecx
mov dword [ebx + 0x64], eax
jmp 0x449ef3
push eax
push 0x4081a0
mov edx, dword [esp + 0x874]
push 0xfcb
push edx
call fcn.00431730
add esp, 0x10
jmp 0x449ef3
mov eax, dword [ebp]
push 0x406d68
push eax
call esi
add esp, 8
test eax, eax
jne 0x447192
mov ax, word [ebp + 4]
test ax, ax
jbe 0x449e2b
mov esi, dword [ebp + 0xc]
mov cl, byte [esi]
test cl, cl
je 0x449e2b
mov dl, byte [ebx + 0x125]
test dl, dl
je 0x446e76
mov dl, byte [esp + 0x17]
test dl, dl
jne 0x44751f
cmp cl, 0x40
jne 0x4470ef
cmp ax, 1
jbe 0x449e2b
mov ecx, dword [ebp + 0x14]
cmp byte [ecx], 0
je 0x449e2b
inc esi
push 0x408198
push esi
call fcn.0045ea90
mov ebx, eax
mov eax, dword [0x480f08]
test eax, eax
je 0x446f45
push 0
push ebx
call fcn.00446850
lea edx, [esp + 0x58]
lea eax, [esp + 0x158]
push edx
push eax
push 0
push 0
push ebx
call dword [sym.imp.MSVCRT.dll__splitpath]
mov ecx, dword [esp + 0x34]
push ecx
call dword [sym.imp.MSVCRT.dll_free]
mov edi, dword [ebp + 0x14]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x18
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov edi, 0x408184
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea edi, [esp + 0x158]
add edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea edi, [esp + 0x58]
add edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
add edx, ecx
push edx
call fcn.00451b20
mov ecx, dword [ebp + 0x14]
lea edx, [esp + 0x58]
push ecx
lea ecx, [esp + 0x15c]
push edx
push ecx
push 0x408184
push eax
mov dword [esp + 0x34], eax
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0x14
push 0x20
push 0x4028a0
push ebx
call dword [sym.imp.MSVCRT.dll__fsopen]
add esp, 0xc
mov dword [esp + 0x34], eax
test eax, eax
jne 0x446f74
mov edx, dword [esp + 0x86c]
push ebx
push 0x450
push edx
call fcn.00431660
add esp, 0xc
mov dword [esp + 0x28], 0
mov eax, dword [esp + 0x34]
lea ecx, [esp + 0x358]
push eax
push 0x104
push ecx
call dword [sym.imp.MSVCRT.dll_fgets]
add esp, 0xc
test eax, eax
je 0x4470a0
lea edi, [esp + 0x358]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x358]
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 0x3b
push edx
mov byte [esp + ecx + 0x35f], al
call dword [sym.imp.MSVCRT.dll_strchr]
add esp, 8
test eax, eax
je 0x446fd1
mov byte [eax], 0
mov eax, dword [0x4690b8]
lea ecx, [esp + 0x358]
push eax
push ecx
call dword [sym.imp.MSVCRT.dll_strtok]
mov esi, eax
add esp, 8
test esi, esi
je 0x446f7c
mov edi, dword [sym.imp.MSVCRT.dll_sscanf]
mov edx, dword [ebp + 0x14]
push edx
push esi
call dword [sym.imp.MSVCRT.dll__stricmp]
add esp, 8
test eax, eax
jne 0x447049
mov eax, dword [0x4690b8]
push eax
push 0
call dword [sym.imp.MSVCRT.dll_strtok]
mov esi, eax
add esp, 8
test esi, esi
je 0x447036
lea ecx, [esp + 0x1c]
push ecx
push 0x4026b0
push esi
call edi
add esp, 0xc
cmp eax, 1
mov dword [esp + 0x28], eax
je 0x447056
push esi
push 0x457
push ebx
call fcn.00431660
add esp, 0xc
test esi, esi
jne 0x446ff4
mov eax, dword [esp + 0x28]
test eax, eax
jne 0x4470a0
jmp 0x446f7c
mov eax, dword [esp + 0x864]
mov edx, dword [esp + 0x1c]
mov dword [eax + 0x60], edx
mov ecx, dword [0x4690b8]
push ecx
push 0
call dword [sym.imp.MSVCRT.dll_strtok]
mov esi, eax
add esp, 8
test esi, esi
je 0x447091
push 0x48101c
push 0x4026b0
push esi
call edi
add esp, 0xc
cmp eax, 1
je 0x4470a0
push esi
push 0x457
push ebx
call fcn.00431660
add esp, 0xc
mov edx, dword [esp + 0x34]
push edx
call dword [sym.imp.MSVCRT.dll_fclose]
mov eax, dword [esp + 0x2c]
add esp, 4
test eax, eax
jne 0x4470c8
mov eax, dword [ebp + 0x14]
push eax
push 0x1066
push ebx
call fcn.00431730
add esp, 0xc
push ebx
call dword [sym.imp.MSVCRT.dll_free]
mov ecx, dword [esp + 0x868]
add esp, 4
mov dword [esp + 0x10], 2
mov ebx, ecx
mov byte [ecx + 0x125], 1
jmp 0x449ef3
and eax, 0xffff
dec eax
je 0x44716a
dec eax
je 0x447125
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x86c]
mov eax, dword [edx]
add eax, 5
push eax
push 0x457
push ecx
call fcn.00431660
add esp, 0xc
mov byte [ebx + 0x125], 1
jmp 0x449ef3
lea edx, [ebx + 0x60]
push edx
push 0
push ebp
call fcn.0040cf90
test al, al
je 0x449eb5
push 0x48101c
push 1
push ebp
mov dword [esp + 0x1c], 1
call fcn.0040cf90
test al, al
je 0x449eb5
mov dword [esp + 0x10], 2
mov byte [ebx + 0x125], 1
jmp 0x449ef3
lea eax, [ebx + 0x60]
push eax
push 0
push ebp
call fcn.0040cf90
test al, al
je 0x449eb5
mov dword [esp + 0x10], 1
mov byte [ebx + 0x125], 1
jmp 0x449ef3
mov ecx, dword [ebp]
push 0x40817c
push ecx
call esi
add esp, 8
test eax, eax
jne 0x4471b0
mov byte [0x480f6c], 1
jmp 0x449ef3
mov edx, dword [ebp]
push 0x408174
push edx
call esi
add esp, 8
test eax, eax
jne 0x4471ff
cmp word [ebp + 4], ax
je 0x449e2b
mov eax, dword [esp + 0x18]
or ecx, 0xffffffff
mov edx, dword [eax]
xor eax, eax
add edx, 8
mov edi, edx
repne scasb al, byte es:[edi]
not ecx
push ecx
push edx
push 0x480f40
call fcn.004511e0
mov eax, dword [esp + 0x864]
or dword [eax + 0x19c], 2
jmp 0x44751f
mov ecx, dword [ebp]
push 0x408168
push ecx
call esi
add esp, 8
test eax, eax
jne 0x44721d
mov byte [ebx + 0x12d], 1
jmp 0x449ef3
mov edx, dword [ebp]
push 0x4042cc
push edx
call esi
add esp, 8
test eax, eax
jne 0x447325
mov dword [ebx + 0x154], 3
cmp word [ebp + 4], ax
jbe 0x44751f
mov eax, edi
and eax, 0xffff
mov ecx, dword [ebp + eax*8 + 8]
test ecx, ecx
jne 0x449e8f
mov esi, dword [ebp + eax*8 + 0xc]
push 0x408160
push esi
call dword [sym.imp.MSVCRT.dll__stricmp]
add esp, 8
test eax, eax
jne 0x44727d
mov byte [0x480f95], 1
jmp 0x447311
push 0x408154
push esi
call dword [sym.imp.MSVCRT.dll__stricmp]
add esp, 8
test eax, eax
jne 0x447297
mov byte [0x480f95], al
jmp 0x447311
push 0x40814c
push esi
call dword [sym.imp.MSVCRT.dll__stricmp]
add esp, 8
test eax, eax
jne 0x4472b6
mov dword [ebx + 0x154], 3
jmp 0x447311
push 0x408144
push esi
call dword [sym.imp.MSVCRT.dll__stricmp]
add esp, 8
test eax, eax
jne 0x4472d5
mov dword [ebx + 0x154], 2
jmp 0x447311
push 0x40813c
push esi
call dword [sym.imp.MSVCRT.dll__stricmp]
add esp, 8
test eax, eax
jne 0x4472f4
mov dword [ebx + 0x154], 1
jmp 0x447311
push 0x40465c
push esi
call dword [sym.imp.MSVCRT.dll__stricmp]
add esp, 8
test eax, eax
jne 0x449e8f
mov dword [ebx + 0x154], eax
inc edi
cmp di, word [ebp + 4]
jb 0x447247
mov dword [esp + 0x10], edi
jmp 0x447526
mov eax, dword [ebp]
push 0x407488
push eax
call esi
add esp, 8
test eax, eax
jne 0x44745a
cmp word [ebp + 4], ax
jbe 0x449e2b
mov ecx, dword [ebp + 0xc]
cmp byte [ecx], 0
je 0x449e2b
mov eax, edi
and eax, 0xffff
mov ecx, dword [ebp + eax*8 + 8]
test ecx, ecx
jne 0x449e8f
mov esi, dword [ebp + eax*8 + 0xc]
push 0x407480
push esi
call dword [sym.imp.MSVCRT.dll__stricmp]
add esp, 8
test eax, eax
jne 0x44738c
mov eax, dword [0x496474]
or al, 1
mov dword [0x496474], eax
jmp 0x447446
push 0x40747c
push esi
call dword [sym.imp.MSVCRT.dll__stricmp]
add esp, 8
test eax, eax
jne 0x4473b0
mov eax, dword [0x496474]
or al, 2
mov dword [0x496474], eax
jmp 0x447446
push 0x407474
push esi
call dword [sym.imp.MSVCRT.dll__stricmp]
add esp, 8
test eax, eax
jne 0x4473d1
mov eax, dword [0x496474]
or al, 3
mov dword [0x496474], eax
jmp 0x447446
push 0x404388
push esi
call dword [sym.imp.MSVCRT.dll__stricmp]
add esp, 8
test eax, eax
jne 0x4473f2
mov eax, dword [0x496474]
or al, 4
mov dword [0x496474], eax
jmp 0x447446
push 0x4046e0
push esi
call dword [sym.imp.MSVCRT.dll__stricmp]
add esp, 8
test eax, eax
jne 0x447413
mov eax, dword [0x496474]
or al, 8
mov dword [0x496474], eax
jmp 0x447446
push 0x4046a4
push esi
call dword [sym.imp.MSVCRT.dll__stricmp]
add esp, 8
test eax, eax
jne 0x449e8f
mov byte [ebx + 0x137], 1
mov byte [ebx + 0x138], 1
mov eax, dword [ebx + 0x19c]
or al, 0x20
mov dword [ebx + 0x19c], eax
inc edi
cmp di, word [ebp + 4]
jb 0x447351
mov dword [esp + 0x10], edi
jmp 0x447526
mov edx, dword [ebp]
push 0x407470
push edx
call esi
add esp, 8
test eax, eax
jne 0x44759d
cmp word [ebp + 4], ax
je 0x449e2b
mov eax, dword [esp + 0x18]
mov ecx, dword [0x480f08]
mov eax, dword [eax]
add eax, 4
test ecx, ecx
mov dword [0x4690bc], eax
je 0x447526
push 0
push eax
call fcn.00446850
mov eax, dword [0x4690bc]
lea ecx, [esp + 0x58]
lea edx, [esp + 0x158]
push ecx
push edx
push 0
push 0
push eax
call dword [sym.imp.MSVCRT.dll__splitpath]
mov ecx, dword [esp + 0x34]
push ecx
call dword [sym.imp.MSVCRT.dll_free]
mov edi, 0x407460
or ecx, 0xffffffff
xor eax, eax
add esp, 0x18
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea edi, [esp + 0x158]
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea edi, [esp + 0x58]
add edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
add edx, ecx
push edx
call fcn.00451b20
lea ecx, [esp + 0x58]
lea edx, [esp + 0x158]
push ecx
push edx
mov dword [esp + 0x28], eax
push 0x407460
push eax
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0x10
mov ebx, dword [esp + 0x864]
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x18]
inc ecx
mov dword [esp + 0x48], ecx
mov ecx, dword [eax + 0x14]
mov al, byte [esp + 0x17]
mov dword [esp + 0x18], ecx
test al, al
jne 0x447564
mov eax, dword [0x480f08]
test eax, eax
je 0x447564
mov edx, dword [esp + 0x20]
mov eax, dword [0x480f04]
push edx
push 0x40733c
push eax
call dword [sym.imp.MSVCRT.dll_fprintf]
add esp, 0xc
mov ecx, dword [esp + 0x20]
push ecx
call dword [sym.imp.MSVCRT.dll_free]
mov edx, dword [esp + 0x4c]
mov eax, dword [0x481118]
add esp, 4
cmp edx, eax
jb 0x446d3d
mov al, byte [esp + 0x2f]
pop edi
pop esi
pop ebp
test al, al
je 0x447593
call fcn.004311f0
pop ebx
add esp, 0x850
ret 0xc
mov eax, dword [ebp]
push 0x408130
push eax
call esi
add esp, 8
test eax, eax
jne 0x4475e2
cmp word [ebp + 4], ax
je 0x449e2b
mov al, byte [ebx + 0x13f]
test al, al
jne 0x44751f
mov edx, dword [esp + 0x18]
lea ecx, [ebx + 0x1c8]
push ecx
mov eax, dword [edx]
add eax, 0xb
push eax
call fcn.00417240
jmp 0x447526
mov ecx, dword [ebp]
push 0x408128
push ecx
call esi
add esp, 8
test eax, eax
jne 0x44766a
cmp word [ebp + 4], ax
jbe 0x449e2b
mov edx, dword [ebp + 0xc]
cmp byte [edx], 0
je 0x449e2b
mov eax, edi
and eax, 0xffff
mov ecx, dword [ebp + eax*8 + 8]
test ecx, ecx
jne 0x449e8f
mov esi, dword [ebp + eax*8 + 0xc]
push 0x408120
push esi
call dword [sym.imp.MSVCRT.dll__stricmp]
add esp, 8
test eax, eax
jne 0x44763c
mov byte [ebx + 0x12e], al
jmp 0x44765a
push 0x408118
push esi
call dword [sym.imp.MSVCRT.dll__stricmp]
add esp, 8
test eax, eax
jne 0x449e8f
mov byte [ebx + 0x12f], 1
inc edi
cmp di, word [ebp + 4]
jb 0x44760a
mov dword [esp + 0x10], edi
jmp 0x449ef3
mov eax, dword [ebp]
push 0x40810c
push eax
call esi
add esp, 8
test eax, eax
jne 0x4476d7
cmp word [ebp + 4], ax
je 0x449e2b
mov ecx, dword [esp + 0x18]
push 0x404730
mov esi, dword [ecx]
add esi, 0xa
push esi
call dword [sym.imp.MSVCRT.dll__stricmp]
add esp, 8
test eax, eax
jne 0x4476ae
mov byte [0x496468], 1
jmp 0x447526
push esi
call fcn.00420220
test al, al
push esi
je 0x4476cd
push 0x1062
push 0
call fcn.00431730
add esp, 0xc
jmp 0x447526
call fcn.0041ffd0
jmp 0x447526
mov edx, dword [ebp]
push 0x408100
push edx
call esi
add esp, 8
test eax, eax
jne 0x447740
cmp word [ebp + 4], ax
je 0x449e2b
mov al, byte [ebx + 0x13f]
test al, al
jne 0x44751f
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x868]
mov eax, dword [eax]
add eax, 0xc
test ecx, ecx
je 0x44772b
mov ecx, dword [ecx + 0x18]
push ecx
lea ecx, [ebx + 0x1c8]
push ecx
push eax
call fcn.004172d0
jmp 0x447526
xor ecx, ecx
push ecx
lea ecx, [ebx + 0x1c8]
push ecx
push eax
call fcn.004172d0
jmp 0x447526
mov edx, dword [ebp]
push 0x4080fc
push edx
call esi
add esp, 8
test eax, eax
jne 0x4477a4
or byte [ebx + 0x43], 0x20
cmp word [ebp + 4], ax
jbe 0x44751f
mov esi, dword [sym.imp.MSVCRT.dll__stricmp]
mov eax, edi
and eax, 0xffff
mov ecx, dword [ebp + eax*8 + 8]
test ecx, ecx
jne 0x449e8f
mov eax, dword [ebp + eax*8 + 0xc]
push 0x4080f4
push eax
call esi
add esp, 8
test eax, eax
jne 0x449e8f
or byte [ebx + 0x43], 0x10
inc edi
cmp di, word [ebp + 4]
jb 0x447766
mov dword [esp + 0x10], edi
jmp 0x447526
mov eax, dword [ebp]
push 0x4080ec
push eax
call esi
add esp, 8
test eax, eax
jne 0x44780f
cmp word [ebp + 4], ax
jbe 0x449e2b
mov ecx, dword [ebp + 0xc]
cmp byte [ecx], 0
je 0x449e2b
mov eax, edi
and eax, 0xffff
mov ecx, dword [ebp + eax*8 + 8]
test ecx, ecx
jne 0x449e8f
mov eax, dword [ebp + eax*8 + 0xc]
push 0x4080e0
push eax
call esi
add esp, 8
test eax, eax
jne 0x449e8f
inc edi
mov word [ebx + 0x8a], 0x1000
cmp di, word [ebp + 4]
jb 0x4477cc
mov dword [esp + 0x10], edi
jmp 0x447526
mov edx, dword [ebp]
push 0x4080d8
push edx
call esi
add esp, 8
test eax, eax
jne 0x447890
mov byte [ebx + 0x130], 1
cmp word [ebp + 4], ax
jbe 0x44751f
mov eax, edi
and eax, 0xffff
mov ecx, dword [ebp + eax*8 + 8]
test ecx, ecx
jne 0x449e8f
mov esi, dword [ebp + eax*8 + 0xc]
push 0x4080d0
push esi
call dword [sym.imp.MSVCRT.dll__stricmp]
add esp, 8
test eax, eax
jne 0x447862
or byte [ebx + 0x43], 0x40
jmp 0x447880
push 0x4080cc
push esi
call dword [sym.imp.MSVCRT.dll__stricmp]
add esp, 8
test eax, eax
jne 0x449e8f
or byte [ebx + 0x8b], 0x20
inc edi
cmp di, word [ebp + 4]
jb 0x447832
mov dword [esp + 0x10], edi
jmp 0x447526
mov eax, dword [ebp]
push 0x4080bc
push eax
call esi
add esp, 8
test eax, eax
jne 0x44797c
mov al, byte [esp + 0x17]
test al, al
je 0x44751f
mov al, byte [0x481160]
test al, al
je 0x4478e8
mov al, byte [0x4690c4]
test al, al
je 0x4478e8
mov eax, dword [ebx + 0x154]
test eax, eax
je 0x4478e8
mov al, byte [ebx + 0x130]
test al, al
jne 0x4478e8
cmp dword [ebx + 0x1f0], 1
je 0x4478e8
mov byte [ebx + 0x131], 1
mov al, byte [0x49647c]
test al, al
jne 0x44751f
mov eax, dword [ebx + 0x19c]
test eax, 0x800000
je 0x44790c
mov cl, byte [ebx + 0x149]
test cl, cl
jne 0x44791d
test eax, 0x400000
je 0x447924
mov al, byte [ebx + 0x134]
test al, al
je 0x447924
push 0x4080b8
jmp 0x44795c
mov al, byte [ebx + 0x130]
test al, al
je 0x447935
push 0x402ff0
jmp 0x44795c
cmp dword [ebx + 0x1f0], 1
jne 0x447945
push 0x4025a4
jmp 0x44795c
mov al, byte [0x49647a]
test al, al
je 0x447970
mov al, byte [0x496479]
test al, al
jne 0x447970
push 0x4080a8
push 0x408098
push 0xfeb
push 0
call fcn.00431730
add esp, 0x10
mov byte [0x49647c], 1
jmp 0x447526
mov ecx, dword [ebp]
push 0x40808c
push ecx
call esi
add esp, 8
test eax, eax
jne 0x4479e1
cmp word [ebp + 4], ax
jbe 0x449e2b
mov edx, dword [ebp + 0xc]
cmp byte [edx], 0
je 0x449e2b
lea eax, [esp + 0x1c]
mov dword [esp + 0x10], 1
push eax
push 0
push ebp
call fcn.0040cf90
test al, al
je 0x449eb5
mov ecx, dword [esp + 0x1c]
mov dword [0x481130], ecx
mov eax, dword [ebx + 0x19c]
or eax, 0x4000000
mov dword [ebx + 0x19c], eax
jmp 0x447526
mov edx, dword [ebp]
push 0x408084
push edx
call esi
add esp, 8
test eax, eax
jne 0x447a2a
cmp word [ebp + 4], ax
je 0x449e2b
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
add ecx, 6
push ecx
call fcn.00451ba0
mov dword [0x49644c], eax
mov dword [ebx + 0x1a4], eax
mov eax, dword [ebx + 0x19c]
or al, 4
mov dword [ebx + 0x19c], eax
jmp 0x447526
mov edx, dword [ebp]
push 0x40807c
push edx
call esi
add esp, 8
test eax, eax
jne 0x447aac
cmp word [ebp + 4], ax
jbe 0x449e2b
mov eax, dword [ebp + 0xc]
cmp byte [eax], 0
je 0x449e2b
mov eax, edi
and eax, 0xffff
mov ecx, dword [ebp + eax*8 + 8]
test ecx, ecx
jne 0x449e8f
mov esi, dword [ebp + eax*8 + 0xc]
push 0x408074
push esi
call dword [sym.imp.MSVCRT.dll__stricmp]
add esp, 8
test eax, eax
jne 0x447a85
mov byte [ebx + 0x1f8], 1
jmp 0x447a9c
push 0x402850
push esi
call dword [sym.imp.MSVCRT.dll__stricmp]
add esp, 8
test eax, eax
jne 0x449e8f
inc edi
cmp di, word [ebp + 4]
jb 0x447a52
mov dword [esp + 0x10], edi
jmp 0x447526
mov ecx, dword [ebp]
push 0x407458
push ecx
call esi
add esp, 8
test eax, eax
jne 0x447b3a
cmp word [ebp + 4], ax
je 0x449e2b
mov eax, dword [0x480f98]
cmp eax, 2
jne 0x447af9
mov edx, dword [esp + 0x86c]
mov eax, dword [0x481044]
push edx
mov edx, dword [esp + 0x1c]
mov ecx, dword [eax + 8]
push 1
mov eax, dword [edx]
push ecx
add eax, 7
push eax
call fcn.00431ea0
jmp 0x447526
cmp eax, 1
jne 0x44751f
mov al, byte [esp + 0x17]
test al, al
je 0x447b1f
cmp dword [ebx + 0x1f0], 1
je 0x447b1f
mov byte [0x496478], 1
jmp 0x447526
mov ecx, dword [esp + 0x18]
push 0
mov edx, dword [ecx]
add edx, 7
push edx
push 0x481100
call fcn.0045f230
jmp 0x447526
mov eax, dword [ebp]
push 0x408068
push eax
call esi
add esp, 8
test eax, eax
jne 0x447bb2
cmp word [ebp + 4], ax
jbe 0x449e2b
mov ecx, dword [ebp + 0xc]
cmp byte [ecx], 0
je 0x449e2b
lea edx, [esp + 0x1c]
mov dword [esp + 0x10], 1
push edx
push 0
push ebp
call fcn.0040cf90
test al, al
je 0x449eb5
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x447ba7
lea ecx, [eax - 1]
test eax, ecx
jne 0x447ba7
mov dword [ebx + 0x68], eax
mov eax, dword [ebx + 0x19c]
or eax, 0x2000000
mov dword [ebx + 0x19c], eax
jmp 0x449ef3
push eax
push 0x40805c
jmp 0x446e16
mov eax, dword [ebp]
push 0x408054
push eax
call esi
add esp, 8
test eax, eax
jne 0x447c1b
mov byte [ebx + 0x132], 1
cmp word [ebp + 4], ax
jbe 0x447c0c
mov eax, edi
and eax, 0xffff
mov ecx, dword [ebp + eax*8 + 8]
test ecx, ecx
jne 0x449e8f
mov eax, dword [ebp + eax*8 + 0xc]
push 0x406cf4
push eax
call esi
add esp, 8
test eax, eax
jne 0x449e8f
inc edi
mov byte [ebx + 0x132], al
cmp di, word [ebp + 4]
jb 0x447bd1
mov dword [esp + 0x10], edi
or dword [ebx + 0x19c], 0x80000
jmp 0x447526
mov ecx, dword [ebp]
push 0x40804c
push ecx
call esi
add esp, 8
test eax, eax
jne 0x447cb8
cmp word [ebp + 4], ax
jbe 0x447c9b
mov eax, edi
and eax, 0xffff
mov ecx, dword [ebp + eax*8 + 8]
test ecx, ecx
jne 0x449e8f
mov esi, dword [ebp + eax*8 + 0xc]
push 0x408040
push esi
call dword [sym.imp.MSVCRT.dll__stricmp]
add esp, 8
test eax, eax
jne 0x447c6b
mov eax, dword [ebx + 0x15c]
or al, 2
jmp 0x447c8a
push 0x408034
push esi
call dword [sym.imp.MSVCRT.dll__stricmp]
add esp, 8
test eax, eax
jne 0x449e8f
mov eax, dword [ebx + 0x15c]
or al, 1
inc edi
mov dword [ebx + 0x15c], eax
cmp di, word [ebp + 4]
jb 0x447c37
mov dword [esp + 0x10], edi
mov eax, dword [ebx + 0x15c]
test eax, eax
jne 0x44751f
mov dword [ebx + 0x15c], 3
jmp 0x447526
mov edx, dword [ebp]
push 0x408028
push edx
call esi
add esp, 8
test eax, eax
jne 0x447cd5
mov byte [ebx + 0x142], al
jmp 0x449ef3
mov eax, dword [ebp]
push 0x408020
push eax
call esi
add esp, 8
test eax, eax
jne 0x447d41
cmp word [ebp + 4], ax
jbe 0x449e2b
mov ecx, dword [ebp + 0xc]
cmp byte [ecx], 0
je 0x449e2b
lea edx, [esp + 0x1c]
mov dword [esp + 0x10], 1
push edx
push 0
push ebp
call fcn.0040cf90
test al, al
je 0x449eb5
mov eax, dword [esp + 0x1c]
mov ecx, dword [ebx + 0x150]
cmp eax, ecx
jbe 0x447d2e
mov dword [ebx + 0x150], eax
mov eax, dword [ebx + 0x19c]
or al, 8
mov dword [ebx + 0x19c], eax
jmp 0x449ef3
mov eax, dword [ebp]
push 0x408018
push eax
call esi
add esp, 8
test eax, eax
jne 0x447d95
cmp word [ebp + 4], ax
jbe 0x449e2b
mov ecx, dword [ebp + 0xc]
cmp byte [ecx], 0
je 0x449e2b
lea edx, [esp + 0x1c]
mov dword [esp + 0x10], 1
push edx
push 0
push ebp
call fcn.0040cf90
test al, al
je 0x449eb5
mov eax, dword [esp + 0x1c]
mov dword [ebx + 0x128], eax
jmp 0x449ef3
mov ecx, dword [ebp]
push 0x406d0c
push ecx
call esi
add esp, 8
test eax, eax
jne 0x447eb2
cmp word [ebp + 4], ax
jbe 0x449e2b
mov edx, dword [ebp + 0xc]
cmp byte [edx], 0
je 0x449e2b
mov eax, dword [ebx + 0x160]
test eax, eax
je 0x447de0
mov al, byte [esp + 0x17]
test al, al
je 0x447de0
mov dword [esp + 0x10], 2
jmp 0x449ef3
lea esi, [ebx + 0x94]
push esi
push 0
push ebp
call fcn.0040cf90
test al, al
je 0x449eb5
mov edi, 2
mov dword [esp + 0x10], 1
cmp word [ebp + 4], di
jb 0x447e2b
mov eax, dword [ebp + 0x14]
mov cl, byte [eax + 1]
test cl, cl
je 0x447e2b
lea ecx, [ebx + 0x98]
push ecx
push 1
push ebp
call fcn.0040cf90
test al, al
je 0x449eb5
cmp word [ebp + 4], di
mov dword [esp + 0x10], edi
jb 0x447e43
mov edx, dword [ebp + 0x14]
mov al, byte [edx + 1]
test al, al
je 0x447e43
mov dl, 1
jmp 0x447e45
xor dl, dl
mov al, dl
neg al
sbb eax, eax
and eax, edi
inc eax
mov dword [ebx + 0x160], eax
mov eax, dword [ebx + 0x98]
test al, 3
je 0x447e63
and al, 0xfc
add eax, 4
mov dword [ebx + 0x98], eax
mov eax, dword [esi]
test al, 3
je 0x447e74
and al, 0xfc
add eax, 4
mov dword [esi], eax
mov ecx, dword [ebx + 0x98]
cmp eax, ecx
jae 0x449ef3
test dl, dl
je 0x447ea1
push 0x408010
push 0x4cd
push 0
call fcn.00431660
add esp, 0xc
jmp 0x449ef3
mov dword [esi], ecx
mov dword [ebx + 0x160], 2
jmp 0x449ef3
mov ecx, dword [ebp]
push 0x407448
push ecx
call esi
add esp, 8
test eax, eax
jne 0x447f72
cmp word [ebp + 4], ax
jbe 0x449e2b
mov edx, dword [ebp + 0xc]
cmp byte [edx], 0
je 0x449e2b
mov edi, dword [esp + 0x10]
mov esi, edi
and esi, 0xffff
mov eax, dword [ebp + esi*8 + 8]
test eax, eax
jne 0x449e99
mov edi, dword [esp + 0x10]
lea eax, [esp + 0x1c]
push eax
push edi
push ebp
call fcn.0040cf90
test al, al
je 0x447f16
mov ecx, dword [esp + 0x1c]
push ecx
call fcn.00431430
jmp 0x447f5e
mov edi, dword [ebp + esi*8 + 0xc]
push 0x2d
push edi
call dword [sym.imp.MSVCRT.dll_strchr]
mov esi, eax
add esp, 8
test esi, esi
je 0x449e99
mov ebx, dword [sym.imp.MSVCRT.dll_atoi]
push edi
mov byte [esi], 0
call ebx
inc esi
mov edi, eax
push esi
call ebx
mov esi, eax
add esp, 8
cmp edi, esi
jg 0x449e99
push edi
call fcn.00431430
inc edi
cmp edi, esi
jle 0x447f4f
mov edi, dword [esp + 0x10]
inc edi
cmp di, word [ebp + 4]
mov dword [esp + 0x10], edi
jb 0x447ee2
jmp 0x44751f
mov edx, dword [ebp]
push 0x408008
push edx
call esi
add esp, 8
test eax, eax
jne 0x4480dc
cmp word [ebp + 4], ax
je 0x449e2b
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
mov eax, dword [0x480f08]
add ecx, 7
test eax, eax
mov dword [0x480f10], ecx
je 0x447526
mov edx, dword [esp + 0x20]
push edx
call dword [sym.imp.MSVCRT.dll_free]
mov edx, dword [0x480f10]
lea eax, [esp + 0x660]
lea ecx, [esp + 0x560]
push eax
push ecx
push 0
push 0
push edx
call dword [sym.imp.MSVCRT.dll__splitpath]
lea edi, [esp + 0x574]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x18
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea edi, [esp + 0x65c]
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [edx + ecx + 0xc]
push eax
call fcn.00451b20
mov edx, eax
or ecx, 0xffffffff
mov edi, 0x408000
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [esp + 0x20], edx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x407ffc
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebx, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x55c]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebx, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x65c]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebx, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x4017e4
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebx, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x44751f
mov ecx, dword [ebp]
push 0x407440
push ecx
call esi
add esp, 8
test eax, eax
jne 0x4484d0
cmp word [ebp + 4], ax
jbe 0x449e2b
mov edx, dword [ebp + 0xc]
cmp byte [edx], 0
je 0x449e2b
xor ebx, ebx
mov byte [esp + 0x26], 0
mov byte [esp + 0x27], 0
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x34], ebx
mov eax, dword [esp + 0x10]
and eax, 0xffff
mov esi, dword [ebp + eax*8 + 8]
mov edi, dword [ebp + eax*8 + 0xc]
test esi, esi
je 0x4482d9
push 0x407ff4
push esi
call dword [sym.imp.MSVCRT.dll__stricmp]
add esp, 8
test eax, eax
jne 0x44819a
mov esi, 0x407ff0
mov eax, edi
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x448189
test cl, cl
je 0x44817b
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x448189
add eax, 2
add esi, 2
test cl, cl
jne 0x44815b
xor eax, eax
test eax, eax
sete byte [esp + 0x27]
jmp 0x4482e7
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
sete byte [esp + 0x27]
jmp 0x4482e7
push 0x407348
push esi
call dword [sym.imp.MSVCRT.dll__stricmp]
add esp, 8
test eax, eax
jne 0x4481c2
mov eax, dword [esp + 0x38]
test eax, eax
jne 0x449e99
mov dword [esp + 0x38], edi
jmp 0x4482e7
push 0x407fe8
push esi
call dword [sym.imp.MSVCRT.dll__stricmp]
add esp, 8
test eax, eax
jne 0x44821b
mov esi, 0x407ff0
mov eax, edi
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x44820a
test cl, cl
je 0x4481fc
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x44820a
add eax, 2
add esi, 2
test cl, cl
jne 0x4481dc
xor eax, eax
test eax, eax
sete byte [esp + 0x26]
jmp 0x4482e7
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
sete byte [esp + 0x26]
jmp 0x4482e7
push 0x407434
push esi
call dword [sym.imp.MSVCRT.dll__stricmp]
add esp, 8
test eax, eax
jne 0x44825b
mov eax, dword [esp + 0x28]
test eax, eax
jne 0x449e99
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0x1c]
push eax
push ecx
push ebp
call fcn.0040cf90
test al, al
je 0x449eb5
mov dword [esp + 0x28], edi
jmp 0x4482e7
push 0x407428
push esi
call dword [sym.imp.MSVCRT.dll__stricmp]
add esp, 8
test eax, eax
jne 0x448298
mov eax, dword [esp + 0x34]
test eax, eax
jne 0x449e99
mov eax, dword [esp + 0x10]
lea edx, [esp + 0x1c]
push edx
push eax
push ebp
call fcn.0040cf90
test al, al
je 0x449eb5
mov dword [esp + 0x34], edi
jmp 0x4482e7
push 0x40741c
push esi
call dword [sym.imp.MSVCRT.dll__stricmp]
add esp, 8
test eax, eax
jne 0x449e99
mov eax, dword [esp + 0x40]
test eax, eax
jne 0x449e99
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0x1c]
push ecx
push edx
push ebp
call fcn.0040cf90
test al, al
je 0x449eb5
mov dword [esp + 0x40], edi
jmp 0x4482e7
test ebx, ebx
jne 0x449e99
mov ebx, edi
mov dword [esp + 0x4c], ebx
mov eax, dword [esp + 0x10]
inc eax
cmp ax, word [ebp + 4]
mov dword [esp + 0x10], eax
jb 0x448128
mov eax, dword [esp + 0x28]
test eax, eax
jne 0x448312
mov ecx, dword [esp + 0x40]
test ecx, ecx
jne 0x448312
mov ecx, dword [esp + 0x34]
test ecx, ecx
je 0x448329
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x40]
mov esi, dword [esp + 0x38]
push ecx
push edx
push eax
push esi
call fcn.00457a10
jmp 0x44832d
mov esi, dword [esp + 0x38]
mov al, byte [esp + 0x26]
test al, al
je 0x448348
test ebx, ebx
je 0x4483cd
push ebx
push 0x481090
call fcn.0045f2d0
test ebx, ebx
je 0x448466
mov eax, dword [esp + 0x38]
test eax, eax
jne 0x448364
mov al, byte [esp + 0x27]
test al, al
je 0x448466
mov edi, ebx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
inc ecx
push ecx
call fcn.00451b20
mov edx, eax
mov al, byte [ebx]
cmp al, 0x3f
je 0x4483fc
mov edi, 0x407fe4
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, ebx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebx, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
mov ebx, dword [esp + 0x4c]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x44841b
test esi, esi
je 0x4483e1
push esi
push 0x481080
call fcn.0045f2d0
jmp 0x448466
mov eax, dword [ebp]
mov ecx, dword [esp + 0x86c]
push eax
push 0x45d
push ecx
call fcn.00431660
add esp, 0xc
jmp 0x448466
mov edi, ebx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x868]
test eax, eax
je 0x448456
mov ecx, dword [esp + 0x864]
push ecx
push eax
mov eax, dword [esp + 0x40]
push eax
push edx
call fcn.00457710
test al, al
jne 0x448466
mov ecx, dword [esp + 0x86c]
push ebx
push 0x11c0
push ecx
call fcn.00431730
add esp, 0xc
jmp 0x448466
mov eax, dword [esp + 0x38]
push eax
push edx
push 0x481050
call fcn.0045f230
mov eax, dword [esp + 0x28]
test eax, eax
jne 0x44751f
mov eax, dword [esp + 0x40]
test eax, eax
jne 0x44751f
mov eax, dword [esp + 0x34]
test eax, eax
jne 0x44751f
mov al, byte [esp + 0x26]
test al, al
jne 0x44751f
test ebx, ebx
je 0x4484b2
mov eax, dword [esp + 0x38]
test eax, eax
jne 0x44751f
mov al, byte [esp + 0x27]
test al, al
jne 0x44751f
mov ecx, dword [ebp]
mov edx, dword [esp + 0x86c]
push ecx
push 0x45d
push edx
call fcn.00431660
add esp, 0xc
jmp 0x44751f
mov eax, dword [ebp]
push 0x407414
push eax
call esi
add esp, 8
test eax, eax
jne 0x44858a
cmp word [ebp + 4], ax
je 0x449e2b
mov ecx, dword [esp + 0x18]
push 0
mov eax, dword [ecx]
mov ecx, dword [esp + 0x58]
add eax, 8
push eax
call fcn.00464820
mov esi, eax
mov al, byte [0x481160]
test al, al
je 0x448518
mov al, byte [esp + 0x17]
test al, al
jne 0x448553
mov eax, dword [ebx + 0x1b0]
test eax, eax
je 0x448533
cmp dword [eax], esi
je 0x44852f
mov eax, dword [eax + 4]
test eax, eax
jne 0x448522
jmp 0x448533
test eax, eax
jne 0x44854b
push 8
call fcn.00451b20
mov dword [eax], esi
mov edx, dword [ebx + 0x1b0]
mov dword [eax + 4], edx
mov dword [ebx + 0x1b0], eax
mov al, byte [esp + 0x17]
test al, al
je 0x448577
mov edi, dword [esp + 0x868]
mov eax, dword [edi + 0x18]
push eax
push esi
call fcn.004649b0
mov al, byte [0x481160]
test al, al
je 0x448577
mov ecx, dword [edi + 0x18]
push esi
push ecx
call fcn.00435ec0
mov eax, dword [ebx + 0x19c]
or al, 0x10
mov dword [ebx + 0x19c], eax
jmp 0x447526
mov edx, dword [ebp]
push 0x407fd8
push edx
call esi
add esp, 8
test eax, eax
jne 0x448638
cmp word [ebp + 4], ax
jbe 0x449e2b
mov eax, dword [ebp + 0xc]
cmp byte [eax], 0
je 0x449e2b
mov eax, edi
and eax, 0xffff
mov ecx, dword [ebp + eax*8 + 8]
test ecx, ecx
jne 0x449e8f
mov esi, dword [ebp + eax*8 + 0xc]
push 0x407fd4
push esi
call dword [sym.imp.MSVCRT.dll__stricmp]
add esp, 8
test eax, eax
jne 0x4485e9
mov byte [0x496479], 1
jmp 0x448601
push 0x406cf4
push esi
call dword [sym.imp.MSVCRT.dll__stricmp]
add esp, 8
test eax, eax
jne 0x448618
mov byte [0x496479], al
inc edi
cmp di, word [ebp + 4]
jb 0x4485b6
mov dword [esp + 0x10], edi
mov byte [0x49647a], 1
jmp 0x447526
push 0x407fd0
push esi
mov dword [esp + 0x18], edi
call dword [sym.imp.MSVCRT.dll__stricmp]
add esp, 8
test eax, eax
je 0x44751f
jmp 0x449e99
mov ecx, dword [ebp]
push 0x406cf8
push ecx
call esi
add esp, 8
test eax, eax
jne 0x44869e
or byte [ebx + 0x42], 0x20
cmp word [ebp + 4], ax
jbe 0x44751f
mov esi, dword [sym.imp.MSVCRT.dll__stricmp]
mov eax, edi
and eax, 0xffff
mov ecx, dword [ebp + eax*8 + 8]
test ecx, ecx
jne 0x449e8f
mov eax, dword [ebp + eax*8 + 0xc]
push 0x406cf4
push eax
call esi
add esp, 8
test eax, eax
jne 0x449e8f
and word [ebx + 0x42], 0xffdf
inc edi
cmp di, word [ebp + 4]
jb 0x44865e
mov dword [esp + 0x10], edi
jmp 0x447526
mov edx, dword [ebp]
push 0x40740c
push edx
call esi
add esp, 8
test eax, eax
je 0x44751f
mov eax, dword [ebp]
mov esi, dword [sym.imp.MSVCRT.dll__stricmp]
push 0x4073fc
push eax
call esi
add esp, 8
test eax, eax
jne 0x4486d8
mov byte [ebx + 0x135], 1
jmp 0x447526
mov ecx, dword [ebp]
push 0x4073d4
push ecx
call esi
add esp, 8
test eax, eax
jne 0x448880
cmp word [ebp + 4], ax
jbe 0x449e2b
mov edx, dword [ebp + 0xc]
cmp byte [edx], 0
je 0x449e2b
mov ebx, dword [esp + 0x864]
mov eax, dword [esp + 0x10]
and eax, 0xffff
mov edi, dword [ebp + eax*8 + 8]
mov esi, dword [ebp + eax*8 + 0xc]
test edi, edi
je 0x4487eb
push 0x407fc8
push edi
call dword [sym.imp.MSVCRT.dll__stricmp]
add esp, 8
test eax, eax
jne 0x448742
mov dword [ebx + 0x16c], esi
jmp 0x448868
push 0x407fc0
push edi
call dword [sym.imp.MSVCRT.dll__stricmp]
add esp, 8
test eax, eax
jne 0x448760
mov dword [ebx + 0x168], esi
jmp 0x448868
push 0x4073cc
push edi
call dword [sym.imp.MSVCRT.dll__stricmp]
add esp, 8
test eax, eax
jne 0x44879f
push esi
push ebx
call fcn.00452f50
mov edx, dword [ebx + 0x19c]
mov cl, byte [esp + 0x17]
or dh, 0x40
test cl, cl
mov dword [ebx + 0x19c], edx
mov eax, edx
je 0x448868
or ah, 0x80
jmp 0x448862
push 0x4073c4
push edi
call dword [sym.imp.MSVCRT.dll__stricmp]
add esp, 8
test eax, eax
jne 0x449e99
mov ebx, dword [esp + 0x864]
push esi
push ebx
call fcn.00453000
mov edx, dword [ebx + 0x19c]
mov cl, byte [esp + 0x17]
or edx, 0x10000
test cl, cl
mov dword [ebx + 0x19c], edx
mov eax, edx
je 0x448868
or eax, 0x20000
jmp 0x448862
mov edi, dword [sym.imp.MSVCRT.dll__stricmp]
push 0x407fb8
push esi
call edi
add esp, 8
test eax, eax
jne 0x448809
mov byte [ebx + 0x136], 1
jmp 0x448868
push 0x407fac
push esi
call edi
add esp, 8
test eax, eax
jne 0x448820
mov byte [ebx + 0x136], al
jmp 0x448868
push 0x407fa0
push esi
call edi
add esp, 8
test eax, eax
jne 0x448838
mov byte [0x48114c], 1
jmp 0x448857
push 0x407f94
push esi
call edi
add esp, 8
test eax, eax
jne 0x449e99
mov ebx, dword [esp + 0x864]
mov byte [0x48114c], al
mov eax, dword [ebx + 0x19c]
or eax, 0x40000
mov dword [ebx + 0x19c], eax
mov eax, dword [esp + 0x10]
inc eax
cmp ax, word [ebp + 4]
mov dword [esp + 0x10], eax
jb 0x44870b
jmp 0x44751f
mov eax, dword [ebp]
push 0x407f8c
push eax
call esi
add esp, 8
test eax, eax
jne 0x4488b4
cmp word [ebp + 4], ax
je 0x449e2b
mov ecx, dword [esp + 0x18]
push 0xffffffffffffffff
push 1
mov edx, dword [ecx]
add edx, 8
push edx
call fcn.0044fee0
jmp 0x447526
mov eax, dword [ebp]
push 0x4073bc
push eax
call esi
add esp, 8
test eax, eax
jne 0x448944
cmp word [ebp + 4], ax
jbe 0x449e2b
mov esi, dword [ebp + 0xc]
cmp byte [esi], 0
je 0x449e2b
push esi
push ebx
mov dword [esp + 0x18], 1
call fcn.004644c0
test ax, ax
mov word [ebx + 0x30], ax
jne 0x448923
mov ecx, dword [esp + 0x86c]
push 0x407380
push esi
push 0xfac
push ecx
call fcn.00431730
mov eax, dword [ebx + 0x19c]
add esp, 0x10
or ah, 0x10
mov dword [ebx + 0x19c], eax
jmp 0x449ef3
cmp ax, 0x601
jne 0x448930
mov byte [0x496694], 1
mov eax, dword [ebx + 0x19c]
or ah, 0x10
mov dword [ebx + 0x19c], eax
jmp 0x449ef3
mov edx, dword [ebp]
push 0x407f84
push edx
call esi
add esp, 8
test eax, eax
jne 0x4489a0
cmp word [ebp + 4], ax
je 0x449e2b
mov eax, dword [esp + 0x18]
push 0x481060
mov esi, dword [eax]
add esi, 7
push esi
call fcn.0045f280
test al, al
jne 0x44751f
push 0x407f70
push esi
push 0x481060
call fcn.0045f230
mov eax, dword [ebx + 0x19c]
or ah, 0x20
mov dword [ebx + 0x19c], eax
jmp 0x447526
mov ecx, dword [ebp]
push 0x4046a4
push ecx
call esi
add esp, 8
test eax, eax
jne 0x448a79
mov byte [ebx + 0x137], 1
cmp word [ebp + 4], ax
je 0x448a66
mov edx, dword [esp + 0x18]
mov ecx, dword [0x480f08]
mov eax, dword [edx]
add eax, 4
test ecx, ecx
mov dword [0x481168], eax
je 0x448a66
lea ecx, [esp + 0x58]
lea edx, [esp + 0x158]
push ecx
push edx
push 0
push 0
push eax
call dword [sym.imp.MSVCRT.dll__splitpath]
mov eax, dword [esp + 0x34]
push eax
call dword [sym.imp.MSVCRT.dll_free]
mov edi, 0x407f60
or ecx, 0xffffffff
xor eax, eax
add esp, 0x18
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea edi, [esp + 0x158]
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea edi, [esp + 0x58]
add edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
add edx, ecx
push edx
call fcn.00451b20
lea ecx, [esp + 0x58]
lea edx, [esp + 0x158]
push ecx
push edx
push 0x407f60
push eax
mov dword [esp + 0x30], eax
call dword [sym.imp.MSVCRT.dll_sprintf]
mov ebx, dword [esp + 0x874]
add esp, 0x10
mov eax, dword [ebx + 0x19c]
or al, 0x20
mov dword [ebx + 0x19c], eax
jmp 0x447526
mov eax, dword [ebp]
push 0x407f58
push eax
call esi
add esp, 8
test eax, eax
jne 0x448b47
cmp word [ebp + 4], ax
jbe 0x449e2b
mov ecx, dword [ebp + 0xc]
cmp byte [ecx], 0
je 0x449e2b
mov ecx, dword [ebx + 0x19c]
or ecx, 0x20
mov dword [ebx + 0x19c], ecx
mov byte [ebx + 0x137], 1
cmp word [ebp + 4], 0
jbe 0x449ef3
mov edi, dword [esp + 0x10]
mov eax, edi
and eax, 0xffff
mov ecx, dword [ebp + eax*8 + 8]
test ecx, ecx
jne 0x449e8f
mov esi, dword [ebp + eax*8 + 0xc]
push 0x4046e8
push esi
call dword [sym.imp.MSVCRT.dll__stricmp]
add esp, 8
test eax, eax
jne 0x448afd
mov byte [ebx + 0x13a], 1
jmp 0x448b37
push 0x407f50
push esi
call dword [sym.imp.MSVCRT.dll__stricmp]
add esp, 8
test eax, eax
jne 0x448b19
mov byte [ebx + 0x138], 1
jmp 0x448b37
push 0x407f48
push esi
call dword [sym.imp.MSVCRT.dll__stricmp]
add esp, 8
test eax, eax
jne 0x449e8f
mov byte [ebx + 0x139], 1
inc edi
cmp di, word [ebp + 4]
jb 0x448aca
mov dword [esp + 0x10], edi
jmp 0x449ef3
mov edx, dword [ebp]
push 0x407f40
push edx
call esi
add esp, 8
test eax, eax
jne 0x448c25
cmp word [ebp + 4], ax
je 0x449e2b
mov esi, dword [esp + 0x18]
push 0x3d
mov eax, dword [esi]
add eax, 6
push eax
call dword [sym.imp.MSVCRT.dll__mbschr]
add esp, 8
test eax, eax
je 0x449e99
mov ecx, dword [esi]
add ecx, 6
cmp eax, ecx
je 0x449e99
mov cl, byte [eax + 1]
lea esi, [eax + 1]
test cl, cl
je 0x449e99
mov edi, dword [esp + 0x18]
mov byte [eax], 0
mov edx, dword [edi]
add edx, 6
push edx
call fcn.0040f370
test al, al
jne 0x448bdd
mov eax, dword [edi]
add eax, 6
push eax
call fcn.00451ba0
dec esi
mov edx, dword [esp + 0x86c]
mov byte [esi], 0x3d
mov ecx, dword [edi]
push ecx
push eax
push 0x4a0
push edx
call fcn.00431660
add esp, 0x10
push esi
call fcn.0040f370
test al, al
jne 0x448c05
mov ecx, dword [esp + 0x86c]
dec esi
mov byte [esi], 0x3d
mov eax, dword [edi]
inc esi
push eax
push esi
push 0x4a0
push ecx
call fcn.00431660
add esp, 0x10
mov edx, dword [edi]
push esi
add edx, 6
push edx
push 0x4810f0
call fcn.0045f230
or dword [ebx + 0x19c], 0x100000
jmp 0x447526
mov eax, dword [ebp]
push 0x407f34
push eax
call esi
add esp, 8
test eax, eax
jne 0x448c43
mov byte [ebx + 0x13c], 1
jmp 0x449ef3
mov ecx, dword [ebp]
push 0x407f24
push ecx
call esi
add esp, 8
test eax, eax
jne 0x448c61
mov byte [ebx + 0x133], 1
jmp 0x449ef3
mov edx, dword [ebp]
push 0x4067c4
push edx
call esi
add esp, 8
test eax, eax
jne 0x448cad
cmp word [ebp + 4], ax
je 0x449e2b
mov al, byte [esp + 0x17]
test al, al
je 0x448ca2
cmp dword [ebx + 0x1f0], 1
jne 0x448ca2
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
add ecx, 5
mov dword [0x4690c0], ecx
jmp 0x447526
mov edx, dword [esp + 0x18]
mov eax, dword [edx]
jmp 0x449ff3
mov edx, dword [ebp]
push 0x407f1c
push edx
call esi
add esp, 8
test eax, eax
jne 0x448ccb
mov byte [ebx + 0x13d], 1
jmp 0x449ef3
mov eax, dword [ebp]
push 0x407f10
push eax
call esi
add esp, 8
test eax, eax
jne 0x448ce9
mov byte [ebx + 0x13e], 1
jmp 0x449ef3
mov ecx, dword [ebp]
push 0x407370
push ecx
call esi
add esp, 8
test eax, eax
je 0x44a00e
mov edx, dword [ebp]
push 0x40736c
push edx
call esi
add esp, 8
test eax, eax
je 0x44a00e
mov eax, dword [ebp]
push 0x407f04
push eax
call esi
add esp, 8
test eax, eax
jne 0x448d45
cmp word [ebp + 4], ax
je 0x449e2b
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx]
add edx, 0xc
push edx
call fcn.0041fff0
jmp 0x447526
mov eax, dword [ebp]
push 0x407efc
push eax
call esi
add esp, 8
test eax, eax
jne 0x448d63
mov byte [ebx + 0x140], 1
jmp 0x449ef3
mov ecx, dword [ebp]
push 0x406d78
push ecx
call esi
add esp, 8
test eax, eax
jne 0x448d7f
mov byte [0x4692e8], al
jmp 0x449ef3
mov edx, dword [ebp]
push 0x407ef0
push edx
call esi
add esp, 8
test eax, eax
jne 0x448da0
or dword [ebx + 0x19c], 0x200000
jmp 0x449ef3
mov eax, dword [ebp]
push 0x407ee8
push eax
call esi
add esp, 8
test eax, eax
jne 0x448dbe
mov byte [ebx + 0x141], 1
jmp 0x449ef3
mov ecx, dword [ebp]
push 0x407ee4
push ecx
call esi
add esp, 8
test eax, eax
jne 0x448f70
cmp word [ebp + 4], ax
jbe 0x449e2b
mov edx, dword [ebp + 0xc]
cmp byte [edx], 0
je 0x449e2b
mov eax, dword [esp + 0x10]
and eax, 0xffff
mov ecx, dword [ebp + eax*8 + 8]
lea edi, [eax + 1]
test ecx, ecx
jne 0x449e99
mov esi, dword [ebp + eax*8 + 0xc]
mov ebx, dword [sym.imp.MSVCRT.dll__stricmp]
push 0x407ee0
push esi
call ebx
add esp, 8
test eax, eax
jne 0x448e82
mov ax, word [ebp + 4]
cmp edi, eax
jge 0x448e63
mov esi, dword [esp + 0x10]
inc esi
mov ecx, esi
mov dword [esp + 0x10], esi
and ecx, 0xffff
mov edx, dword [ebp + ecx*8 + 0xc]
cmp byte [edx], 0
je 0x448e59
lea eax, [esp + 0x50]
push eax
push esi
push ebp
call fcn.0040cf90
test al, al
jne 0x448e59
add esi, 0xffff
mov dword [esp + 0x10], esi
jmp 0x448e63
mov ecx, dword [esp + 0x50]
mov dword [0x4690d4], ecx
mov eax, dword [esp + 0x864]
mov byte [eax + 0x134], 1
mov ecx, dword [eax + 0x19c]
or ecx, 0x400000
jmp 0x448f52
push 0x407ed8
push esi
call ebx
add esp, 8
test eax, eax
jne 0x448eb0
mov eax, dword [esp + 0x864]
mov byte [eax + 0x134], 0
mov ecx, dword [eax + 0x19c]
or ecx, 0x400000
jmp 0x448f52
push 0x407ed0
push esi
call ebx
add esp, 8
test eax, eax
jne 0x448edb
mov eax, dword [esp + 0x864]
mov byte [eax + 0x149], 0
mov ecx, dword [eax + 0x19c]
or ecx, 0x800000
jmp 0x448f52
push 0x407ec8
push esi
call ebx
add esp, 8
test eax, eax
jne 0x448efa
mov eax, dword [esp + 0x864]
mov byte [eax + 0x143], 0
jmp 0x448f46
push 0x407ec4
push esi
call ebx
add esp, 8
test eax, eax
jne 0x448f25
mov eax, dword [esp + 0x864]
mov byte [eax + 0x149], 1
mov ecx, dword [eax + 0x19c]
or ecx, 0x800000
jmp 0x448f52
push 0x407ebc
push esi
call ebx
add esp, 8
test eax, eax
jne 0x449e99
mov eax, dword [esp + 0x864]
mov byte [eax + 0x143], 1
mov ecx, dword [eax + 0x19c]
or ecx, 0x1000000
mov dword [eax + 0x19c], ecx
mov eax, dword [esp + 0x10]
inc eax
cmp ax, word [ebp + 4]
mov dword [esp + 0x10], eax
jb 0x448dea
jmp 0x44751f
mov edx, dword [ebp]
push 0x407eb0
push edx
call esi
add esp, 8
test eax, eax
je 0x449ef3
mov eax, dword [ebp]
mov esi, dword [sym.imp.MSVCRT.dll__stricmp]
push 0x406ce0
push eax
call esi
add esp, 8
test eax, eax
jne 0x44905c
cmp word [ebp + 4], ax
jbe 0x449e2b
mov esi, dword [ebp + 0xc]
cmp byte [esi], 0
je 0x449e2b
mov eax, dword [ebp + 8]
test eax, eax
jne 0x449e99
push 0x2e
push esi
mov dword [esp + 0x18], 1
mov dword [esp + 0x38], 0
call dword [sym.imp.MSVCRT.dll_strchr]
add esp, 8
test eax, eax
je 0x44900f
lea ecx, [esp + 0x30]
inc eax
push ecx
push 0x4026b0
push eax
call dword [sym.imp.MSVCRT.dll_sscanf]
add esp, 0xc
cmp eax, 1
jne 0x449eb5
cmp dword [esp + 0x30], 0xffff
ja 0x449eb5
lea edx, [esp + 0x3c]
push edx
push 0x4026b0
push esi
call dword [sym.imp.MSVCRT.dll_sscanf]
add esp, 0xc
cmp eax, 1
jne 0x449eb5
mov eax, dword [esp + 0x3c]
cmp eax, 0xffff
ja 0x449eb5
mov ecx, dword [ebx + 0x19c]
mov word [ebx + 0x6c], ax
mov ax, word [esp + 0x30]
or ch, 4
mov dword [ebx + 0x19c], ecx
mov word [ebx + 0x6e], ax
jmp 0x449ef3
mov ecx, dword [ebp]
push 0x404690
push ecx
call esi
add esp, 8
test eax, eax
jne 0x4491c9
cmp word [ebp + 4], ax
je 0x449e2b
mov edx, dword [esp + 0x18]
mov al, byte [ebx + 0x124]
mov ebp, dword [edx]
add ebp, 4
test al, al
je 0x449132
mov al, byte [esp + 0x17]
test al, al
je 0x449132
cmp word [ebx + 0x30], 0x601
je 0x44751f
mov edx, dword [0x481170]
lea eax, [esp + 0x58]
lea ecx, [esp + 0x158]
push eax
push ecx
push 0
push 0
push edx
call dword [sym.imp.MSVCRT.dll__splitpath]
lea edi, [esp + 0x6c]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x16c]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push ebp
mov esi, edi
mov ebx, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
lea eax, [esp + 0x170]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
call dword [sym.imp.MSVCRT.dll__mbsicmp]
add esp, 0x1c
test eax, eax
je 0x44751f
mov ecx, dword [0x481170]
mov edx, dword [esp + 0x86c]
push ecx
push ebp
push 0xfe6
push edx
call fcn.00431730
jmp 0x44751c
mov dword [0x481170], ebp
mov byte [ebx + 0x124], 1
mov eax, dword [0x480f08]
test eax, eax
je 0x447526
mov edx, dword [0x481170]
lea eax, [esp + 0x58]
lea ecx, [esp + 0x158]
push eax
push ecx
push 0
push 0
push edx
call dword [sym.imp.MSVCRT.dll__splitpath]
mov eax, dword [esp + 0x34]
push eax
call dword [sym.imp.MSVCRT.dll_free]
mov edi, 0x40735c
or ecx, 0xffffffff
xor eax, eax
add esp, 0x18
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea edi, [esp + 0x158]
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea edi, [esp + 0x58]
add edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
add edx, ecx
push edx
call fcn.00451b20
lea ecx, [esp + 0x58]
lea edx, [esp + 0x158]
push ecx
push edx
mov dword [esp + 0x28], eax
push 0x40735c
jmp 0x447515
mov eax, dword [ebp]
push 0x407eac
push eax
call esi
add esp, 8
test eax, eax
jne 0x4492b7
cmp word [ebp + 4], ax
je 0x449e2b
mov ecx, dword [esp + 0x18]
push 0x40465c
mov esi, dword [ecx]
add esi, 4
push esi
call dword [sym.imp.MSVCRT.dll__stricmp]
add esp, 8
test eax, eax
jne 0x44920f
mov byte [0x4690c4], al
jmp 0x447526
mov eax, dword [0x480f08]
mov dword [0x481150], esi
test eax, eax
je 0x447526
lea edx, [esp + 0x58]
lea eax, [esp + 0x158]
push edx
push eax
push 0
push 0
push esi
call dword [sym.imp.MSVCRT.dll__splitpath]
mov al, byte [esp + 0x16c]
add esp, 0x14
test al, al
je 0x44751f
mov al, byte [esp + 0x58]
test al, al
je 0x44751f
mov ecx, dword [esp + 0x20]
push ecx
call dword [sym.imp.MSVCRT.dll_free]
mov edi, 0x407e9c
or ecx, 0xffffffff
xor eax, eax
add esp, 4
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea edi, [esp + 0x158]
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea edi, [esp + 0x58]
add edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
add edx, ecx
push edx
call fcn.00451b20
lea ecx, [esp + 0x58]
lea edx, [esp + 0x158]
push ecx
push edx
mov dword [esp + 0x28], eax
push 0x407e9c
jmp 0x447515
mov eax, dword [ebp]
push 0x407e94
push eax
call esi
add esp, 8
test eax, eax
jne 0x449354
cmp word [ebp + 4], ax
jbe 0x449e2b
mov esi, dword [ebp + 0xc]
cmp byte [esi], 0
je 0x449e2b
mov eax, dword [ebp + 8]
test eax, eax
jne 0x449e99
mov edi, dword [sym.imp.MSVCRT.dll__stricmp]
push 0x407e90
push esi
mov dword [esp + 0x18], 1
call edi
add esp, 8
test eax, eax
je 0x449348
push 0x407e84
push esi
call edi
add esp, 8
test eax, eax
je 0x449348
push 0x407e7c
push esi
call edi
add esp, 8
test eax, eax
je 0x44933c
push 0x407e70
push esi
call edi
add esp, 8
test eax, eax
jne 0x449e99
mov byte [ebx + 0x14a], 1
jmp 0x449ef3
mov byte [ebx + 0x14a], 0
jmp 0x449ef3
mov ecx, dword [ebp]
push 0x407e68
push ecx
call esi
add esp, 8
test eax, eax
jne 0x449380
mov byte [ebx + 0x146], 1
mov byte [ebx + 0x137], 1
mov byte [ebx + 0x139], 1
jmp 0x449ef3
mov edx, dword [ebp]
push 0x406cd0
push edx
call esi
add esp, 8
test eax, eax
jne 0x44939e
mov byte [ebx + 0x12c], 1
jmp 0x449ef3
mov eax, dword [ebp]
push 0x407e64
push eax
call esi
add esp, 8
test eax, eax
jne 0x4493bc
mov byte [ebx + 0x148], 1
jmp 0x449ef3
mov ecx, dword [ebp]
push 0x407e60
push ecx
call esi
add esp, 8
test eax, eax
jne 0x4493da
mov byte [ebx + 0x147], 1
jmp 0x449ef3
mov edx, dword [ebp]
push 0x404648
push edx
call esi
add esp, 8
test eax, eax
jne 0x44949d
cmp word [ebp + 4], ax
je 0x449e2b
mov eax, dword [esp + 0x18]
push 0x2c
mov esi, dword [eax]
add esi, 8
push esi
call dword [sym.imp.MSVCRT.dll__mbschr]
add esp, 8
test eax, eax
je 0x44946a
sub eax, esi
mov ebp, eax
lea ecx, [ebp + 1]
push ecx
call fcn.00451b20
mov edi, eax
push ebp
push esi
push edi
call dword [sym.imp.MSVCRT.dll__mbsnbcpy]
add esp, 0xc
mov byte [edi + ebp], 0
push edi
call fcn.0040f370
test al, al
jne 0x449459
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x86c]
mov eax, dword [edx]
push eax
push edi
push 0x4a0
push ecx
call fcn.00431660
add esp, 0x10
push edi
call dword [sym.imp.MSVCRT.dll_free]
mov ebx, dword [esp + 0x868]
add esp, 4
mov edx, dword [esp + 0x18]
mov eax, dword [edx]
add eax, 8
push eax
push 0x4810a0
call fcn.0045f2d0
mov al, byte [esp + 0x17]
test al, al
jne 0x44751f
mov eax, dword [ebx + 0x19c]
or al, 0x40
mov dword [ebx + 0x19c], eax
jmp 0x447526
mov ecx, dword [ebp]
push 0x406cc8
push ecx
call esi
add esp, 8
test eax, eax
jne 0x4495ae
cmp word [ebp + 4], ax
jbe 0x449e2b
mov edx, dword [ebp + 0xc]
cmp byte [edx], 0
je 0x449e2b
mov eax, dword [ebx + 0x164]
test eax, eax
je 0x4494e8
mov al, byte [esp + 0x17]
test al, al
je 0x4494e8
mov dword [esp + 0x10], 2
jmp 0x449ef3
lea esi, [ebx + 0x8c]
push esi
push 0
push ebp
call fcn.0040cf90
test al, al
je 0x449eb5
mov edi, 2
mov dword [esp + 0x10], 1
cmp word [ebp + 4], di
jb 0x449531
mov eax, dword [ebp + 0x14]
cmp byte [eax], 0
je 0x449531
lea ecx, [ebx + 0x90]
push ecx
push 1
push ebp
call fcn.0040cf90
test al, al
je 0x449eb5
cmp word [ebp + 4], di
mov dword [esp + 0x10], edi
jb 0x449547
mov edx, dword [ebp + 0x14]
cmp byte [edx], 0
je 0x449547
mov dl, 1
jmp 0x449549
xor dl, dl
mov al, dl
neg al
sbb eax, eax
and eax, edi
inc eax
mov dword [ebx + 0x164], eax
mov eax, dword [ebx + 0x90]
test al, 3
je 0x449567
and al, 0xfc
add eax, 4
mov ecx, eax
mov eax, dword [esi]
test al, 3
mov dword [ebx + 0x90], ecx
je 0x44957a
and al, 0xfc
add eax, 4
cmp eax, ecx
mov dword [esi], eax
jae 0x449ef3
test dl, dl
je 0x4495a1
push 0x407e58
push 0x4cd
push 0
call fcn.00431660
add esp, 0xc
jmp 0x449ef3
mov dword [esi], ecx
mov dword [ebx + 0x164], edi
jmp 0x449ef3
mov ecx, dword [ebp]
push 0x407e50
push ecx
call esi
add esp, 8
test eax, eax
jne 0x44978d
cmp word [ebp + 4], ax
je 0x449e2b
mov edx, dword [esp + 0x18]
mov ebx, dword [sym.imp.MSVCRT.dll__fsopen]
push 0x20
push 0x401c60
mov esi, dword [edx]
add esi, 5
push esi
call ebx
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x449698
mov ebp, dword [sym.imp.MSVCRT.dll__splitpath]
lea eax, [esp + 0x58]
lea ecx, [esp + 0x158]
push eax
lea edx, [esp + 0x460]
push ecx
lea eax, [esp + 0x4c]
push edx
push eax
push esi
call ebp
mov al, byte [esp + 0x58]
add esp, 0x14
test al, al
jne 0x449689
mov al, byte [esp + 0x45c]
test al, al
jne 0x449689
push edi
lea ecx, [esp + 0x460]
push edi
lea edx, [esp + 0x4c]
push ecx
push edx
call dword [sym.imp.MSVCRT.dll___p__pgmptr]
mov eax, dword [eax]
push eax
call ebp
lea ecx, [esp + 0x6c]
lea edx, [esp + 0x16c]
push ecx
lea eax, [esp + 0x474]
push edx
lea ecx, [esp + 0x60]
push eax
lea edx, [esp + 0x77c]
push ecx
push edx
call dword [sym.imp.MSVCRT.dll__makepath]
push 0x20
lea eax, [esp + 0x788]
push 0x401c60
push eax
call ebx
mov edi, eax
add esp, 0x34
test edi, edi
jne 0x449698
push esi
push 0x450
push esi
call fcn.00431660
add esp, 0xc
mov ecx, dword [edi + 0x10]
push ecx
call dword [sym.imp.MSVCRT.dll__filelength]
mov ebx, eax
add esp, 4
test ebx, ebx
jge 0x4496ba
push esi
push 0x453
push esi
call fcn.00431660
add esp, 0xc
cmp ebx, 0x40
jge 0x4496ce
push esi
push 0x46c
push esi
call fcn.00431660
add esp, 0xc
test bl, 7
mov ebp, ebx
je 0x4496db
and ebp, 0xfffffff8
add ebp, 8
push ebp
call fcn.00451b20
push edi
push ebx
push 1
push eax
mov dword [esp + 0x38], eax
call dword [sym.imp.MSVCRT.dll_fread]
add esp, 0x10
cmp eax, ebx
je 0x449706
push esi
push 0x453
push esi
call fcn.00431660
add esp, 0xc
push edi
call dword [sym.imp.MSVCRT.dll_fclose]
add esp, 4
cmp ebx, ebp
jge 0x44972f
mov edx, dword [esp + 0x28]
mov ecx, ebp
sub ecx, ebx
xor eax, eax
lea edi, [edx + ebx]
mov edx, ecx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov eax, dword [esp + 0x28]
cmp word [eax], 0x5a4d
je 0x449749
push esi
push 0x46c
push esi
call fcn.00431660
add esp, 0xc
mov ecx, dword [esp + 0x28]
cmp word [ecx + 0x18], 0x40
jae 0x449762
push 0xfdc
push esi
call fcn.00431730
add esp, 8
mov eax, dword [esp + 0x864]
mov edx, dword [esp + 0x28]
mov ecx, dword [eax + 0x19c]
mov dword [eax + 0x1e4], edx
or cl, 0x80
mov dword [eax + 0x1e8], ebp
mov dword [eax + 0x19c], ecx
jmp 0x44751f
mov eax, dword [ebp]
push 0x406cbc
push eax
call esi
add esp, 8
test eax, eax
jne 0x449991
cmp word [ebp + 4], ax
jbe 0x449e2b
mov ecx, dword [ebp + 0xc]
cmp byte [ecx], 0
je 0x449e2b
mov eax, dword [esp + 0x10]
and eax, 0xffff
mov ecx, dword [ebp + eax*8 + 8]
test ecx, ecx
jne 0x449e99
mov esi, dword [ebp + eax*8 + 0xc]
sub eax, 0
je 0x4498d2
dec eax
jne 0x449e99
push 0x2e
push esi
mov dword [esp + 0x38], 0
call dword [sym.imp.MSVCRT.dll_strchr]
add esp, 8
test eax, eax
je 0x449826
lea edx, [esp + 0x30]
inc eax
push edx
push 0x4026b0
push eax
call dword [sym.imp.MSVCRT.dll_sscanf]
add esp, 0xc
cmp eax, 1
jne 0x449eb5
cmp dword [esp + 0x30], 0xffff
ja 0x449eb5
lea eax, [esp + 0x3c]
push eax
push 0x4026b0
push esi
call dword [sym.imp.MSVCRT.dll_sscanf]
add esp, 0xc
cmp eax, 1
jne 0x449eb5
mov ecx, dword [esp + 0x3c]
cmp ecx, 0xffff
ja 0x449eb5
mov edx, dword [esp + 0x30]
xor eax, eax
mov ax, word [ebx + 0x88]
cmp eax, 2
jl 0x4498b6
cmp eax, 3
jle 0x44988f
cmp eax, 9
jne 0x4498b6
cmp ecx, 1
jae 0x4498b6
mov ecx, dword [esp + 0x86c]
push esi
push 0xfaa
push ecx
call fcn.00431730
add esp, 0xc
jmp 0x449979
cmp ecx, 3
jb 0x44989b
jne 0x4498b6
cmp edx, 0xa
jae 0x4498b6
mov edx, dword [esp + 0x86c]
push esi
push 0xfaa
push edx
call fcn.00431730
add esp, 0xc
jmp 0x449979
mov eax, dword [ebx + 0x19c]
mov word [ebx + 0x74], cx
or ah, 8
mov word [ebx + 0x76], dx
mov dword [ebx + 0x19c], eax
jmp 0x449979
mov edi, dword [sym.imp.MSVCRT.dll__stricmp]
push 0x406cb4
push esi
call edi
add esp, 8
test eax, eax
jne 0x4498f2
mov word [ebx + 0x88], 3
jmp 0x44996a
push 0x406cac
push esi
call edi
add esp, 8
test eax, eax
jne 0x449913
mov word [ebx + 0x88], 1
mov byte [ebx + 0x12c], 1
jmp 0x44996a
push 0x406ca4
push esi
call edi
add esp, 8
test eax, eax
jne 0x44992d
mov word [ebx + 0x88], 7
jmp 0x44996a
push 0x402848
push esi
call edi
add esp, 8
test eax, eax
jne 0x449947
mov word [ebx + 0x88], 2
jmp 0x44996a
push 0x406c98
push esi
call edi
add esp, 8
test eax, eax
jne 0x449e99
mov word [ebx + 0x88], 9
mov byte [ebx + 0x14b], 1
mov eax, dword [ebx + 0x19c]
or ah, 1
mov dword [ebx + 0x19c], eax
mov eax, dword [esp + 0x10]
inc eax
cmp ax, word [ebp + 4]
mov dword [esp + 0x10], eax
jb 0x4497b9
jmp 0x447526
mov eax, dword [ebp]
push 0x406c90
push eax
call esi
add esp, 8
test eax, eax
jne 0x449a18
cmp word [ebp + 4], ax
jbe 0x449e2b
mov ecx, dword [ebp + 0xc]
cmp byte [ecx], 0
je 0x449e2b
mov edi, dword [esp + 0x10]
mov eax, edi
and eax, 0xffff
mov ecx, dword [ebp + eax*8 + 8]
test ecx, ecx
jne 0x449e8f
mov esi, dword [ebp + eax*8 + 0xc]
push 0x406c8c
push esi
call dword [sym.imp.MSVCRT.dll__stricmp]
add esp, 8
test eax, eax
jne 0x4499ed
or byte [ebx + 0x43], 4
jmp 0x449a08
push 0x406c88
push esi
call dword [sym.imp.MSVCRT.dll__stricmp]
add esp, 8
test eax, eax
jne 0x449e8f
or byte [ebx + 0x43], 8
inc edi
cmp di, word [ebp + 4]
jb 0x4499bd
mov dword [esp + 0x10], edi
jmp 0x447526
mov edx, dword [ebp]
push 0x407e48
push edx
call esi
add esp, 8
test eax, eax
jne 0x449a36
mov byte [0x480ed4], 1
jmp 0x449ef3
mov eax, dword [ebp]
push 0x407e40
push eax
call esi
add esp, 8
test eax, eax
jne 0x449a54
mov byte [0x496460], 1
jmp 0x449ef3
mov eax, dword [ebp]
push 0x406c74
push eax
call dword [sym.imp.MSVCRT.dll__mbsicmp]
add esp, 8
test eax, eax
jne 0x449acc
or byte [ebx + 0x8b], 0x80
cmp word [ebp + 4], ax
jbe 0x449abd
mov esi, dword [esp + 0x10]
mov eax, esi
and eax, 0xffff
mov ecx, dword [ebp + eax*8 + 8]
test ecx, ecx
jne 0x449e95
mov eax, dword [ebp + eax*8 + 0xc]
push 0x406cf4
push eax
call dword [sym.imp.MSVCRT.dll__mbsicmp]
add esp, 8
test eax, eax
jne 0x449e95
and word [ebx + 0x8a], 0x7fff
inc esi
cmp si, word [ebp + 4]
jb 0x449a7b
mov dword [esp + 0x10], esi
or dword [ebx + 0x19c], 0x200000
jmp 0x447526
mov ecx, dword [ebp]
push 0x40734c
push ecx
call esi
add esp, 8
test eax, eax
jne 0x449b4a
cmp word [ebp + 4], ax
jbe 0x449aec
mov edx, dword [ebp + 0xc]
cmp byte [edx], 0
jne 0x449aff
mov byte [0x481175], 1
mov byte [0x481174], 1
jmp 0x449ef3
mov esi, dword [esp + 0x10]
mov edi, dword [sym.imp.MSVCRT.dll__stricmp]
mov eax, esi
and eax, 0xffff
mov ecx, dword [ebp + eax*8 + 8]
test ecx, ecx
jne 0x449e95
mov eax, dword [ebp + eax*8 + 0xc]
push 0x407348
push eax
call edi
add esp, 8
test eax, eax
jne 0x449e95
inc esi
mov byte [0x481174], 1
cmp si, word [ebp + 4]
jb 0x449b09
mov dword [esp + 0x10], esi
jmp 0x447526
mov eax, dword [ebp]
push 0x406c6c
push eax
call esi
add esp, 8
test eax, eax
jne 0x449cb4
cmp word [ebp + 4], ax
jbe 0x449e2b
mov esi, dword [ebp + 0xc]
cmp byte [esi], 0
je 0x449e2b
mov eax, dword [ebp + 8]
test eax, eax
je 0x449c1b
mov esi, dword [sym.imp.MSVCRT.dll__stricmp]
push 0x407e34
push eax
call esi
add esp, 8
test eax, eax
jne 0x449e99
mov eax, dword [ebp + 0xc]
push 0x407e2c
push eax
call esi
add esp, 8
test eax, eax
jne 0x449e99
mov ebx, 1
cmp word [ebp + 4], bx
mov dword [esp + 0x10], ebx
jbe 0x44751f
mov edi, dword [esp + 0x864]
mov eax, ebx
and eax, 0xffff
mov ecx, dword [ebp + eax*8 + 8]
test ecx, ecx
jne 0x449e89
mov ecx, dword [edi + 0x1c8]
mov esi, dword [ebp + eax*8 + 0xc]
push 1
push ecx
push esi
call fcn.0040f3b0
test eax, eax
je 0x449c0b
mov eax, dword [esp + 0x86c]
push esi
push eax
push 0xfd9
push eax
call fcn.00431730
add esp, 0x10
inc ebx
cmp bx, word [ebp + 4]
jb 0x449bca
mov dword [esp + 0x10], ebx
jmp 0x44751f
push 0x2e
push esi
mov dword [esp + 0x18], 1
mov dword [esp + 0x38], 0
call dword [sym.imp.MSVCRT.dll_strchr]
add esp, 8
test eax, eax
je 0x449c67
lea edx, [esp + 0x30]
inc eax
push edx
push 0x4026b0
push eax
call dword [sym.imp.MSVCRT.dll_sscanf]
add esp, 0xc
cmp eax, 1
jne 0x449eb5
cmp dword [esp + 0x30], 0xffff
ja 0x449eb5
lea eax, [esp + 0x3c]
push eax
push 0x4026b0
push esi
call dword [sym.imp.MSVCRT.dll_sscanf]
add esp, 0xc
cmp eax, 1
jne 0x449eb5
mov eax, dword [esp + 0x3c]
cmp eax, 0xffff
ja 0x449eb5
mov ecx, dword [ebx + 0x19c]
mov word [ebx + 0x70], ax
or ch, 2
mov dword [ebx + 0x19c], ecx
mov cx, word [esp + 0x30]
mov word [ebx + 0x72], cx
jmp 0x449ef3
mov edx, dword [ebp]
push 0x402780
push edx
call esi
add esp, 8
test eax, eax
jne 0x449cf7
mov al, byte [esp + 0x17]
test al, al
je 0x449cec
cmp dword [ebx + 0x1f0], 1
je 0x449cec
mov eax, dword [esp + 0x86c]
push 0x481
push eax
call fcn.00431660
add esp, 8
mov word [ebx + 0x30], 0x14c
jmp 0x449ef3
mov ecx, dword [ebp]
push 0x407e24
push ecx
call esi
add esp, 8
test eax, eax
jne 0x449d5e
cmp word [ebp + 4], ax
jbe 0x449d17
mov edx, dword [ebp + 0xc]
cmp byte [edx], 0
jne 0x449d25
mov word [0x4692ea], 2
jmp 0x449ef3
mov eax, dword [ebp + 8]
test eax, eax
jne 0x449e99
lea eax, [esp + 0x1c]
push eax
push 0
push ebp
call fcn.0040cf90
test al, al
je 0x449eb5
mov cx, word [esp + 0x1c]
mov dword [esp + 0x10], 1
mov word [0x4692ea], cx
jmp 0x449ef3
mov edx, dword [ebp]
push 0x407e20
push edx
call esi
add esp, 8
test eax, eax
jne 0x449d7a
mov byte [esp + 0x2f], 1
jmp 0x449ef3
mov eax, dword [ebp]
push 0x406c98
push eax
call esi
add esp, 8
test eax, eax
jne 0x449e07
cmp word [ebp + 4], ax
jbe 0x449e2b
mov ecx, dword [ebp + 0xc]
cmp byte [ecx], 0
je 0x449e2b
mov edi, dword [esp + 0x10]
mov eax, edi
and eax, 0xffff
mov ecx, dword [ebp + eax*8 + 8]
test ecx, ecx
jne 0x449e8f
mov esi, dword [ebp + eax*8 + 0xc]
push 0x407e14
push esi
call dword [sym.imp.MSVCRT.dll__stricmp]
add esp, 8
test eax, eax
jne 0x449dd9
mov byte [ebx + 0x14c], 1
jmp 0x449df7
push 0x404710
push esi
call dword [sym.imp.MSVCRT.dll__stricmp]
add esp, 8
test eax, eax
jne 0x449e8f
mov byte [ebx + 0x14d], 1
inc edi
cmp di, word [ebp + 4]
jb 0x449da6
mov dword [esp + 0x10], edi
jmp 0x447526
mov edx, dword [ebp]
push 0x406c68
push edx
call esi
add esp, 8
test eax, eax
jne 0x449eda
cmp word [ebp + 4], ax
jbe 0x449e2b
mov eax, dword [ebp + 0xc]
cmp byte [eax], 0
jne 0x449e49
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x86c]
mov edx, dword [ecx]
push edx
push 0x47a
push eax
call fcn.00431660
add esp, 0xc
jmp 0x449e99
mov esi, dword [esp + 0x10]
mov edi, dword [sym.imp.MSVCRT.dll__stricmp]
mov eax, esi
and eax, 0xffff
mov ecx, dword [ebp + eax*8 + 8]
test ecx, ecx
jne 0x449e95
mov eax, dword [ebp + eax*8 + 0xc]
push 0x406c5c
push eax
call edi
add esp, 8
test eax, eax
jne 0x449e95
or byte [ebx + 0x42], 0x10
inc esi
cmp si, word [ebp + 4]
jb 0x449e53
mov dword [esp + 0x10], esi
jmp 0x447526
mov dword [esp + 0x10], ebx
jmp 0x449e99
mov dword [esp + 0x10], edi
jmp 0x449e99
mov dword [esp + 0x10], esi
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x86c]
mov edx, dword [ecx]
push edx
push 0x45d
push eax
call fcn.00431660
add esp, 0xc
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x86c]
mov edx, dword [ecx]
push edx
push 0x47b
push eax
call fcn.00431660
mov ebx, dword [esp + 0x870]
add esp, 0xc
jmp 0x449ef3
mov ecx, dword [ebp]
push 0x404630
push ecx
call esi
add esp, 8
test eax, eax
jne 0x449f23
mov byte [0x480f00], 1
mov dx, word [esp + 0x10]
cmp word [ebp + 4], dx
jbe 0x44751f
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x86c]
mov ecx, dword [eax]
push ecx
push 0xfd8
push edx
call fcn.00431730
add esp, 0xc
jmp 0x447526
mov esi, dword [esp + 0x18]
push 7
push 0x407e0c
mov eax, dword [esi]
push eax
call dword [sym.imp.MSVCRT.dll__strnicmp]
add esp, 0xc
test eax, eax
jne 0x449ff1
mov byte [ebx + 0x144], 1
mov ecx, dword [esi]
add ecx, 7
mov dword [0x496448], ecx
call fcn.00459eb0
mov eax, dword [0x480f08]
test eax, eax
je 0x447526
mov edx, dword [0x496448]
push 0
push edx
call fcn.00446850
mov edx, dword [0x496448]
lea eax, [esp + 0x58]
lea ecx, [esp + 0x158]
push eax
push ecx
push 0
push 0
push edx
call dword [sym.imp.MSVCRT.dll__splitpath]
mov eax, dword [esp + 0x34]
push eax
call dword [sym.imp.MSVCRT.dll_free]
mov edi, 0x407dfc
or ecx, 0xffffffff
xor eax, eax
add esp, 0x18
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea edi, [esp + 0x158]
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea edi, [esp + 0x58]
add edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
add edx, ecx
push edx
call fcn.00451b20
lea ecx, [esp + 0x58]
lea edx, [esp + 0x158]
push ecx
push edx
mov dword [esp + 0x28], eax
push 0x407dfc
jmp 0x447515
mov eax, dword [esi]
mov ecx, dword [esp + 0x86c]
push eax
push 0xfcc
push ecx
call fcn.00431730
add esp, 0xc
jmp 0x447526
cmp word [ebp + 4], 0
jne 0x44a02f
lea edx, [ebx + 0x1c8]
mov byte [ebx + 0x13f], 1
push edx
push 0
call fcn.00417190
jmp 0x447526
mov eax, dword [ebp]
push 0x40736c
push eax
call esi
mov ecx, dword [esp + 0x20]
add esp, 8
neg eax
mov edi, dword [ecx]
lea edx, [ebx + 0x1c8]
sbb eax, eax
push edx
and eax, 9
add eax, 4
add eax, edi
push eax
call fcn.00417190
jmp 0x447526