Function at 0x403aad
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 0x403d5c
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.004015ae
nop
test eax, eax
nop
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.004045e6
nop
test eax, eax
nop
nop
test byte [esp + 4], 1
lea eax, [esp + 6]
je 0x403be3
mov eax, dword [esp + 0xc]
push eax
push 0x104
push edi
call esi
add esp, 0xc
test byte [esp + 4], 1
je 0x403c02
push dword [esp + 0xc]
call fcn.00406f30
add esp, 4
mov dword [esp + 0x28], ebx
test byte [esp + 0x10], 1
je 0x403c19
push dword [esp + 0x18]
call fcn.00406f30
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.004023d6
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.004023d6
push ebx
call sub.msvcrt.dll_atoi
add esp, 4
sub esi, edi
mov dword [esp + 0x2c], esi
cmp eax, esi
ja 0x403d10
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.004023d6
push esi
call sub.msvcrt.dll_atoi
add esp, 4
cmp eax, edi
jae 0x403cf8
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 0x403cf8
inc eax
cmp edi, eax
jne 0x403cd5
mov eax, edi
nop
test eax, eax
nop
nop
test eax, eax
nop
cmp eax, edi
je 0x403d20
inc ebx
add ebp, 2
cmp ebx, dword [esp + 0x2c]
jbe 0x403cb3
nop
test eax, eax
nop
nop
test eax, eax
nop
mov eax, dword [esp + 0x24]
jmp 0x403d3e
nop
test eax, eax
nop
lea esi, [esp + 4]
mov ecx, esi
call fcn.00404672
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 0x403d63
mov ebx, dword [ebx]
cmp ebx, dword [esp + 0x1c]
jne 0x403b24
nop
test eax, eax
nop
jmp 0x403d69
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