Function at 0x4591f0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x164
mov eax, dword [0x5d60c4]
xor eax, esp
mov dword [esp + 0x160], eax
mov eax, dword [ebp + 8]
mov edx, ecx
mov ecx, dword [ebp + 0x14]
push ebx
mov dword [esp + 0x38], eax
xor ebx, ebx
mov eax, dword [ebp + 0x1c]
push esi
add eax, ecx
mov dword [esp + 0x24], edx
mov byte [esp + 0x18], 0
mov byte [esp + 0xb], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x50], eax
push edi
mov edi, dword [ebp + 0xc]
mov dword [esp + 0x18], edi
cmp ecx, eax
jge 0x459494
mov esi, dword [ebp + 0x18]
mov eax, dword [ebp + 0x10]
add esi, eax
nop dword [eax]
mov dword [esp + 0x44], eax
cmp dword [ebp + 0x10], esi
jge 0x45947d
mov ecx, dword [ebp + 0x18]
mov dword [esp + 0x48], ecx
mov edi, dword [ebp + 0x14]
mov esi, 0x10
cmp ecx, esi
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], edi
cmovl esi, ecx
cmp dword [ebp + 0x1c], 0x10
mov ecx, 0x10
mov dword [esp + 0x4c], esi
cmovl ecx, dword [ebp + 0x1c]
add eax, esi
mov dword [esp + 0x60], eax
mov eax, edi
add eax, ecx
mov dword [esp + 0x3c], ecx
lea ecx, [esp + 0x58]
mov dword [esp + 0x64], eax
mov eax, dword [edx]
push ecx
lea ecx, [esp + 0x6c]
push ecx
push dword [esp + 0x48]
mov ecx, edx
call dword [eax + 0x14]
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0x68]
add eax, ebx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], eax
inc ebx
xor edi, edi
mov dword [esp + 0x24], ebx
mov dword [esp + 0x38], 1
mov byte [eax], 0
mov eax, dword [esp + 0x3c]
imul eax, esi
xor esi, esi
mov dword [esp + 0x10], 1
mov edx, eax
mov dword [esp + 0x50], eax
xor al, al
mov dword [esp + 0x2c], edx
xor ah, ah
test edx, edx
jle 0x459361
mov bl, byte [ecx]
test edi, edi
jne 0x459313
mov al, bl
inc edi
jmp 0x459341
cmp bl, al
jne 0x45931a
inc edi
jmp 0x459341
test esi, esi
movzx ecx, ah
movzx edx, bl
cmovne edx, ecx
xor ecx, ecx
test esi, esi
mov ah, dl
cmovne ecx, dword [esp + 0x10]
mov dword [esp + 0x10], ecx
cmp bl, ah
jne 0x459351
mov ecx, dword [esp + 0x30]
inc esi
mov edx, dword [esp + 0x2c]
dec edx
inc ecx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x30], ecx
test edx, edx
jg 0x459308
jmp 0x45935d
mov dword [esp + 0x38], 0
mov dword [esp + 0x10], ecx
mov ebx, dword [esp + 0x24]
cmp edi, esi
movzx ecx, ah
movzx edx, al
cmovle edx, ecx
movzx ecx, ah
movzx eax, al
cmovle ecx, eax
cmp dword [esp + 0x20], 0
je 0x459382
cmp dl, byte [esp + 0x1c]
je 0x4593a1
mov esi, dword [esp + 0x34]
mov al, dl
mov edi, dword [esp + 0x18]
mov dword [esp + 0x20], 1
mov byte [esp + 0x1c], al
or byte [esi], 2
mov byte [edi + ebx], al
inc ebx
jmp 0x4593a9
mov esi, dword [esp + 0x34]
mov edi, dword [esp + 0x18]
cmp dword [esp + 0x10], 0
jne 0x459452
mov al, byte [esi]
mov edx, dword [esp + 0x38]
or al, 8
mov byte [esi], al
test edx, edx
je 0x4593e5
cmp dword [esp + 0x14], 0
je 0x4593cf
cmp cl, byte [esp + 0xf]
je 0x4593f1
or al, 4
mov dword [esp + 0x14], 1
mov byte [esi], al
mov byte [edi + ebx], cl
inc ebx
mov byte [esp + 0xf], cl
jmp 0x4593f1
or al, 0x10
mov dword [esp + 0x14], 0
mov byte [esi], al
push edx
push ecx
push dword [esp + 0x24]
lea edx, [edi + ebx]
push dword [esp + 0x48]
lea ecx, [esp + 0x78]
push dword [esp + 0x5c]
call fcn.004594b0
add esp, 0x14
add ebx, eax
test eax, eax
jne 0x459452
mov ecx, dword [esp + 0x28]
lea edx, [esp + 0x58]
mov ebx, dword [esp + 0x24]
push edx
lea edx, [esp + 0x6c]
mov dword [esp + 0x24], eax
mov dword [esp + 0x18], eax
mov byte [esi], 1
mov eax, dword [ecx]
push edx
push dword [esp + 0x48]
call dword [eax + 0x14]
mov esi, dword [esp + 0x50]
lea eax, [esp + 0x68]
push esi
push eax
lea eax, [edi + ebx]
push eax
call fcn.0052d430
add esp, 0xc
add ebx, esi
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x48]
add eax, 0x10
mov esi, dword [ebp + 0x10]
sub ecx, 0x10
add esi, dword [ebp + 0x18]
mov edx, dword [esp + 0x28]
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], ecx
cmp eax, esi
jl 0x459274
mov ecx, dword [ebp + 0x14]
sub dword [ebp + 0x1c], 0x10
add ecx, 0x10
mov eax, dword [ebp + 0x10]
mov dword [ebp + 0x14], ecx
cmp ecx, dword [esp + 0x54]
jl 0x459260
mov ecx, dword [esp + 0x16c]
mov eax, ebx
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.0052b789
mov esp, ebp
pop ebp
ret 0x18