Function at 0x4039cd
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x448
mov dword [esp + 0x20], ecx
mov eax, dword fs:[0x30]
nop
test eax, eax
nop
mov eax, dword [eax + 0xc]
nop
test eax, eax
nop
lea esi, [eax + 0x14]
nop
test eax, eax
nop
mov ebx, dword [eax + 0x14]
nop
test eax, eax
nop
mov ebp, 0x208
xor edi, edi
lea eax, [esp + 0x38]
push ebp
push edi
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
nop
test eax, eax
nop
lea eax, [esp + 0x240]
push ebp
mov dword [esp + 4], 0
push edi
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
nop
test eax, eax
nop
mov dword [esp + 0x1c], esi
cmp ebx, esi
je 0x403c82
nop
test eax, eax
nop
nop
test eax, eax
nop
mov edi, 0x208
push edi
xor esi, esi
push esi
lea ebp, [esp + 0x40]
push ebp
call sub.msvcrt.dll_memset
add esp, 0xc
nop
test eax, eax
nop
push edi
mov dword [esp + 4], 0
push esi
lea edi, [esp + 0x248]
push edi
call sub.msvcrt.dll_memset
add esp, 0xc
nop
test eax, eax
nop
push dword [ebx + 0x20]
push 0x104
push ebp
mov esi, dword [sym.imp.msvcrt.dll_wcscpy_s]
call esi
add esp, 0xc
nop
test eax, eax
nop
lea ecx, [esp + 0x10]
push dword [esp + 0x20]
call fcn.004015ea
nop
test eax, eax
nop
nop
test eax, eax
nop
movzx eax, byte [esp + 0x10]
mov ecx, eax
shr ecx, 1
test al, 1
mov eax, dword [esp + 0x18]
lea edx, [esp + 0x11]
cmove eax, edx
cmovne ecx, dword [esp + 0x14]
mov dword [esp + 0x34], eax
add ecx, eax
mov dword [esp + 0x30], ecx
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
lea ecx, [esp + 4]
push eax
push edx
call fcn.0040450a
nop
test eax, eax
nop
nop
test eax, eax
nop
test byte [esp + 4], 1
lea eax, [esp + 6]
je 0x403b09
mov eax, dword [esp + 0xc]
push eax
push 0x104
push edi
call esi
add esp, 0xc
test byte [esp + 4], 1
je 0x403b28
push dword [esp + 0xc]
call fcn.004065b0
add esp, 4
mov dword [esp + 0x28], ebx
test byte [esp + 0x10], 1
je 0x403b3f
push dword [esp + 0x18]
call fcn.004065b0
add esp, 4
nop
test eax, eax
nop
mov esi, 0x104
push esi
push edi
mov ebx, dword [sym.imp.msvcrt.dll__wcslwr_s]
call ebx
add esp, 8
nop
test eax, eax
nop
push esi
lea esi, [esp + 0x3c]
push esi
call ebx
add esp, 8
nop
test eax, eax
nop
lea ebx, [esp + 4]
mov ecx, ebx
call fcn.00454088
push ebx
call sub.msvcrt.dll_atoi
add esp, 4
mov dword [esp + 0x24], eax
nop
test eax, eax
nop
nop
test eax, eax
nop
nop
test eax, eax
nop
push esi
call sub.msvcrt.dll_wcslen
add esp, 4
mov esi, eax
nop
test eax, eax
nop
push edi
call sub.msvcrt.dll_wcslen
add esp, 4
mov edi, eax
nop
test eax, eax
nop
nop
test eax, eax
nop
mov ecx, ebx
call fcn.00454088
push ebx
call sub.msvcrt.dll_atoi
add esp, 4
sub esi, edi
mov dword [esp + 0x2c], esi
cmp eax, esi
ja 0x403c36
mov ebx, eax
lea ebp, [esp + eax*2]
add ebp, 0x38
nop
test eax, eax
nop
nop
test eax, eax
nop
lea esi, [esp + 4]
mov ecx, esi
call fcn.00454088
push esi
call sub.msvcrt.dll_atoi
add esp, 4
cmp eax, edi
jae 0x403c1e
nop
test eax, eax
nop
movzx ecx, word [ebp + eax*2]
movzx edx, word [esp + eax*2 + 0x240]
nop
test eax, eax
nop
cmp cx, dx
jne 0x403c1e
inc eax
cmp edi, eax
jne 0x403bfb
mov eax, edi
nop
test eax, eax
nop
nop
test eax, eax
nop
cmp eax, edi
je 0x403c46
inc ebx
add ebp, 2
cmp ebx, dword [esp + 0x2c]
jbe 0x403bd9
nop
test eax, eax
nop
nop
test eax, eax
nop
mov eax, dword [esp + 0x24]
jmp 0x403c64
nop
test eax, eax
nop
lea esi, [esp + 4]
mov ecx, esi
call fcn.004544d4
push esi
call sub.msvcrt.dll_atoi
add esp, 4
nop
test eax, eax
nop
nop
test eax, eax
nop
nop
test eax, eax
nop
test eax, eax
mov ebx, dword [esp + 0x28]
jne 0x403c89
mov ebx, dword [ebx]
cmp ebx, dword [esp + 0x1c]
jne 0x403a44
nop
test eax, eax
nop
jmp 0x403c8f
mov eax, dword [ebx + 0x10]
mov dword [esp], eax
mov eax, dword [esp]
add esp, 0x448
pop esi
pop edi
pop ebx
pop ebp
ret