Function at 0x40ace0
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x6e0153
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
push ebx
push ebp
push esi
mov ebp, ecx
push edi
mov dword [esp + 0x10], ebp
call fcn.005c80f0
mov cl, byte [esp + 0x30]
lea esi, [ebp + 0x1c]
xor eax, eax
mov dword [esp + 0x1c], eax
mov byte [esi], cl
mov dword [esi + 4], eax
mov dword [esi + 8], eax
mov dword [esi + 0xc], eax
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x28]
push edx
push eax
mov ecx, ebp
mov byte [esp + 0x24], 1
mov dword [ebp + 0x18], edi
call fcn.005c8390
mov ebx, dword [ebp + 8]
mov ecx, dword [esi + 4]
imul ebx, edi
test ecx, ecx
jne 0x40ad4b
xor eax, eax
jmp 0x40ad50
mov eax, dword [esi + 8]
sub eax, ecx
cmp eax, ebx
jae 0x40aeb8
test ecx, ecx
jne 0x40ad60
xor edx, edx
jmp 0x40ad65
mov edx, dword [esi + 8]
sub edx, ecx
mov eax, dword [esi + 8]
sub ebx, edx
mov edx, dword [esi + 0xc]
mov edi, eax
sub edx, eax
cmp edx, ebx
jae 0x40ae28
test ecx, ecx
je 0x40ad85
mov edx, eax
sub edx, ecx
cmp ebx, edx
jb 0x40ad87
mov edx, ebx
test ecx, ecx
jne 0x40ad8f
xor eax, eax
jmp 0x40ad91
sub eax, ecx
add eax, edx
test eax, eax
mov dword [esp + 0x2c], eax
jge 0x40ad9d
xor eax, eax
push eax
call fcn.00652710
add esp, 4
mov ebp, eax
mov eax, dword [esi + 4]
mov ecx, esi
push ebp
push edi
push eax
call fcn.0040bce0
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x28], eax
push ecx
push ebx
push eax
mov ecx, esi
call fcn.004d9a90
mov edx, dword [esp + 0x28]
mov eax, dword [esi + 8]
add edx, ebx
mov ecx, esi
push edx
push eax
push edi
call fcn.0040bce0
mov eax, dword [esi + 4]
push eax
mov dword [esp + 0x34], eax
call fcn.00652870
mov ecx, dword [esp + 0x30]
mov eax, dword [esi + 4]
add esp, 4
lea edx, [ecx + ebp]
test eax, eax
mov dword [esi + 0xc], edx
jne 0x40ae10
mov eax, dword [esp + 0x10]
xor ecx, ecx
mov ecx, ebp
mov dword [esi + 4], ebp
add ecx, ebx
mov dword [esi + 8], ecx
jmp 0x40aee6
mov ecx, dword [esi + 8]
mov dword [esi + 4], ebp
sub ecx, eax
mov eax, dword [esp + 0x10]
add ecx, ebp
add ecx, ebx
mov dword [esi + 8], ecx
jmp 0x40aee6
mov ecx, eax
sub ecx, edi
cmp ecx, ebx
jae 0x40ae6e
lea edx, [ebx + edi]
mov ecx, esi
push edx
push eax
push edi
call fcn.0040bce0
mov eax, dword [esi + 8]
mov ecx, dword [esp + 0x30]
mov edx, ebx
push ecx
sub edx, eax
mov ecx, esi
add edx, edi
push edx
push eax
call fcn.004d9a90
mov eax, dword [esi + 8]
cmp edi, eax
je 0x40ae69
mov ecx, dword [esp + 0x30]
inc edi
cmp edi, eax
mov dl, byte [ecx]
mov byte [edi - 1], dl
jne 0x40ae5b
add dword [esi + 8], ebx
jmp 0x40aee4
test ebx, ebx
jbe 0x40aee4
push eax
push eax
sub eax, ebx
mov ecx, esi
push eax
call fcn.0040bce0
mov ebp, dword [esi + 8]
mov eax, ebp
sub eax, ebx
cmp edi, eax
je 0x40ae95
mov cl, byte [eax - 1]
dec eax
dec ebp
cmp eax, edi
mov byte [ebp], cl
jne 0x40ae89
lea eax, [ebx + edi]
cmp edi, eax
je 0x40aeaa
mov ebp, dword [esp + 0x30]
mov dl, byte [ebp]
mov byte [edi], dl
inc edi
cmp edi, eax
jne 0x40aea0
mov eax, dword [esi + 8]
add eax, ebx
mov dword [esi + 8], eax
mov eax, dword [esp + 0x10]
jmp 0x40aee6
test ecx, ecx
je 0x40aee4
mov edx, dword [esi + 8]
mov eax, edx
sub eax, ecx
cmp ebx, eax
jae 0x40aee4
mov eax, edx
lea edi, [ecx + ebx]
cmp eax, edx
je 0x40aeda
mov cl, byte [eax]
mov byte [edi], cl
inc edi
inc eax
cmp eax, edx
jne 0x40aed0
mov edx, dword [esi + 8]
mov dword [esi + 8], edi
mov dword [esp + 0x30], edx
mov eax, ebp
mov ecx, dword [esp + 0x14]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x10
ret 0x10