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

Disassembly:
push ebp
mov ebp, esp
push ecx
mov eax, dword [ebp + 0x20]
push esi
mov esi, 1
test eax, eax
je 0x5115d8
cmp byte [eax], 0x31
jne 0x5115d8
cmp dword [ebp + 0x24], 0x38
jne 0x5115d8
push ebx
push edi
mov edi, dword [ebp + 8]
test edi, edi
je 0x5115cc
cmp dword [edi + 0x20], 0
mov dword [edi + 0x18], 0
jne 0x5112d0
mov dword [edi + 0x20], 0x512770
mov dword [edi + 0x28], 0
cmp dword [edi + 0x24], 0
jne 0x5112dd
mov dword [edi + 0x24], 0x512790
cmp dword [ebp + 0xc], 0xffffffff
mov ecx, 6
mov ebx, dword [ebp + 0x14]
cmovne ecx, dword [ebp + 0xc]
mov dword [ebp - 4], ecx
test ebx, ebx
jns 0x511303
xor esi, esi
cmp ebx, 0xfffffff1
jl 0x5115cc
neg ebx
jmp 0x511310
cmp ebx, 0xf
jle 0x511310
mov esi, 2
sub ebx, 0x10
mov eax, dword [ebp + 0x18]
dec eax
cmp eax, 8
ja 0x5115cc
cmp dword [ebp + 0x10], 8
jne 0x5115cc
lea eax, [ebx - 8]
cmp eax, 7
ja 0x5115cc
cmp ecx, 9
ja 0x5115cc
cmp dword [ebp + 0x1c], 4
ja 0x5115cc
cmp ebx, 8
jne 0x511357
cmp esi, 1
jne 0x5115cc
lea ebx, [esi + 8]
mov eax, dword [edi + 0x20]
push 0x16c4
push 1
push dword [edi + 0x28]
call eax
add esp, 0xc
test eax, eax
je 0x5115c0
mov dword [edi + 0x1c], eax
mov ecx, ebx
mov dword [eax + 0x18], esi
mov esi, 1
mov dword [eax + 0x30], ebx
mov ebx, eax
shl esi, cl
mov ecx, dword [ebp + 0x18]
mov dword [eax], edi
add ecx, 7
mov dword [eax + 4], 0x2a
mov dword [eax + 0x1c], 0
lea eax, [esi - 1]
mov dword [ebx + 0x34], eax
mov eax, 1
shl eax, cl
mov dword [ebx + 0x4c], eax
dec eax
mov dword [ebx + 0x54], eax
mov eax, 0xaaaaaaab
mov dword [ebx + 0x50], ecx
add ecx, 2
mul ecx
push 2
shr edx, 1
mov dword [ebx + 0x2c], esi
mov dword [ebx + 0x58], edx
mov eax, dword [edi + 0x20]
push esi
push dword [edi + 0x28]
call eax
push 2
push dword [ebx + 0x2c]
mov dword [ebx + 0x38], eax
push dword [edi + 0x28]
mov eax, dword [edi + 0x20]
call eax
push 2
push dword [ebx + 0x4c]
mov dword [ebx + 0x40], eax
push dword [edi + 0x28]
mov eax, dword [edi + 0x20]
call eax
mov ecx, dword [ebp + 0x18]
mov dword [ebx + 0x44], eax
mov eax, 1
push 4
mov dword [ebx + 0x16c0], 0
lea ecx, [ecx + 6]
shl eax, cl
push eax
mov dword [ebx + 0x169c], eax
push dword [edi + 0x28]
mov eax, dword [edi + 0x20]
call eax
mov edx, dword [ebx + 0x169c]
add esp, 0x30
cmp dword [ebx + 0x38], 0
mov dword [ebx + 8], eax
lea ecx, [edx*4]
mov dword [ebx + 0xc], ecx
je 0x5115a8
cmp dword [ebx + 0x40], 0
je 0x5115a8
cmp dword [ebx + 0x44], 0
je 0x5115a8
test eax, eax
je 0x5115a8
add eax, edx
mov byte [ebx + 0x24], 8
mov dword [ebx + 0x1698], eax
lea eax, [edx - 1]
lea eax, [eax + eax*2]
mov dword [ebx + 0x16a4], eax
mov eax, dword [ebp - 4]
mov dword [ebx + 0x84], eax
mov eax, dword [ebp + 0x1c]
push edi
mov dword [ebx + 0x88], eax
call fcn.00511c10
add esp, 4
test eax, eax
je 0x51149b
mov ebx, 0xfffffffe
pop edi
mov eax, ebx
pop ebx
pop esi
mov esp, ebp
pop ebp
ret
mov esi, dword [edi + 0x1c]
mov dword [edi + 0x14], 0
mov dword [edi + 8], 0
mov dword [edi + 0x18], 0
mov dword [edi + 0x2c], 2
mov ecx, dword [esi + 0x18]
mov eax, dword [esi + 8]
mov dword [esi + 0x14], 0
mov dword [esi + 0x10], eax
test ecx, ecx
jns 0x5114d3
neg ecx
mov dword [esi + 0x18], ecx
cmp ecx, 2
mov eax, 0x2a
push 0
mov edx, 0x39
cmove eax, edx
push 0
mov dword [esi + 4], eax
push 0
jne 0x5114f5
call fcn.0050f280
jmp 0x5114fa
call fcn.0050eef0
add esp, 0xc
mov dword [edi + 0x30], eax
mov dword [esi + 0x28], 0xfffffffe
push esi
call fcn.00513590
mov esi, dword [edi + 0x1c]
xor edx, edx
xor ebx, ebx
mov eax, dword [esi + 0x2c]
mov ecx, dword [esi + 0x4c]
add eax, eax
mov dword [esi + 0x3c], eax
mov eax, dword [esi + 0x44]
mov word [eax + ecx*2 - 2], dx
mov eax, dword [esi + 0x4c]
lea eax, [eax*2 - 2]
push eax
push edx
push dword [esi + 0x44]
call fcn.00481640
mov eax, dword [esi + 0x84]
add esp, 0x10
lea ecx, [eax + eax*2]
movzx eax, word [ecx*4 + 0x54fbc2]
mov dword [esi + 0x80], eax
movzx eax, word [ecx*4 + 0x54fbc0]
mov dword [esi + 0x8c], eax
movzx eax, word [ecx*4 + 0x54fbc4]
mov dword [esi + 0x90], eax
movzx eax, word [ecx*4 + 0x54fbc6]
mov dword [esi + 0x7c], eax
mov eax, ebx
pop edi
mov dword [esi + 0x6c], ebx
mov dword [esi + 0x5c], ebx
mov dword [esi + 0x74], ebx
mov dword [esi + 0x16b4], ebx
mov dword [esi + 0x68], ebx
mov dword [esi + 0x48], ebx
pop ebx
mov dword [esi + 0x78], 2
mov dword [esi + 0x60], 2
pop esi
mov esp, ebp
pop ebp
ret
mov dword [ebx + 4], 0x29a
mov eax, dword [str.insufficient_memory]
push edi
mov dword [edi + 0x18], eax
call fcn.00511180
add esp, 4
pop edi
pop ebx
mov eax, 0xfffffffc
pop esi
mov esp, ebp
pop ebp
ret
pop edi
pop ebx
mov eax, 0xfffffffe
pop esi
mov esp, ebp
pop ebp
ret
mov eax, 0xfffffffa
pop esi
mov esp, ebp
pop ebp
ret