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

Disassembly:
push 0xffffffffffffffff
push 0x54acf6
mov eax, dword fs:[0]
push eax
sub esp, 0x3e0
mov eax, dword [0x463df0]
xor eax, esp
mov dword [esp + 0x3dc], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x463df0]
xor eax, esp
push eax
lea eax, [esp + 0x3f4]
mov dword fs:[0], eax
mov ebx, dword [esp + 0x404]
mov eax, dword [esp + 0x408]
mov esi, ecx
mov ecx, ebx
mov dword [esp + 0x18], eax
call fcn.00519ef0
test al, al
jne 0x513e75
mov eax, dword [ebx + 0xa4]
jmp 0x514221
mov ecx, dword [esi + 0x78]
and ecx, 2
je 0x513e93
mov eax, dword [esi + 0x74]
test eax, eax
je 0x513e93
cmp eax, dword [ebx + 4]
je 0x513e93
mov eax, 0xfffffffe
jmp 0x514221
mov eax, dword [ebx + 4]
xor ebp, ebp
mov dword [esp + 0x20], ebp
cmp eax, 0x400
je 0x513eae
cmp eax, 0x200
jne 0x514042
call fcn.00476260
push ebp
lea edx, [esp + 0x28]
push edx
mov ecx, esi
mov edi, eax
call fcn.00487f10
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 4]
push eax
lea eax, [esi + 0x14]
push eax
mov eax, dword [esi + 0xc]
push ecx
movzx ecx, word [esi + 8]
push edx
mov edx, dword [esp + 0x420]
push eax
mov eax, dword [esp + 0x420]
push ecx
push edx
push eax
push ebx
mov ecx, edi
mov dword [esp + 0x420], ebp
call fcn.00511630
cmp dword [esp + 0x40], 0x10
mov ebp, eax
mov dword [esp + 0x3fc], 0xffffffff
mov dword [esp + 0x24], 0x469080
jb 0x513f20
mov ecx, dword [esp + 0x2c]
push ecx
call fcn.005265f5
add esp, 4
mov dword [esp + 0x40], 0xf
mov dword [esp + 0x3c], 0
mov byte [esp + 0x2c], 0
test ebp, ebp
jne 0x513f4a
push ebp
mov ecx, edi
call fcn.00510d20
mov dword [esp + 0x20], eax
jmp 0x51420c
mov edx, dword [esi + 0x78]
and edx, 2
jne 0x513f57
cmp dword [ebx + 0x28], edx
jne 0x513f8f
mov ecx, dword [edi + 0x24]
push 0x90
lea eax, [esp + 0x138]
push eax
push 1
push ebp
call ecx
add esp, 0x10
cmp eax, 0x90
je 0x513f8f
push ebp
mov ecx, edi
call fcn.00510d20
push ebp
mov ecx, edi
mov esi, eax
call fcn.00510f10
mov eax, esi
jmp 0x514221
mov eax, dword [ebx + 0x28]
test eax, eax
jne 0x513fb9
movzx dx, byte [esp + 0x134]
movzx ecx, byte [esp + 0x135]
shl dx, 8
movzx eax, dx
mov edx, dword [esp + 0x18]
or eax, ecx
mov dword [edx + 0xc], eax
jmp 0x513fc0
mov ecx, dword [esp + 0x18]
mov dword [ecx + 0xc], eax
mov edx, dword [edi]
push ebp
call edx
mov ecx, dword [esp + 0x1c]
shr eax, 0x10
mov dword [ecx + 0x10], eax
mov edx, dword [esi + 0x78]
add esp, 4
and edx, 2
je 0x513ffd
cmp word [esi + 8], 0
jne 0x513ff7
mov ax, word [esp + 0x136]
mov ecx, dword [esp + 0x138]
mov word [esi + 8], ax
mov dword [esi + 0xc], ecx
mov edx, dword [ebx + 4]
mov dword [esi + 0x74], edx
cmp dword [esi + 0x4c], 0
jne 0x514036
mov ecx, dword [edi + 0x24]
push 0x118
lea eax, [esp + 0x2dc]
push eax
push 0xa
push ebp
call ecx
add esp, 0x10
cmp eax, 0x118
jne 0x513f76
lea edx, [esp + 0x2f0]
push edx
lea ecx, [esi + 0x34]
call fcn.004b5f20
mov eax, dword [esp + 0x18]
mov dword [eax + 4], ebp
jmp 0x51421d
call fcn.0047f920
mov edi, eax
mov byte [esp + 0x17], 1
cmp dword [ebx + 0x94], ebp
jne 0x514102
push ebp
lea ecx, [esp + 0x48]
push ecx
mov ecx, esi
mov byte [esp + 0x1f], 0
call fcn.00487f10
push eax
mov eax, dword [esp + 0x410]
lea edx, [esi + 0x14]
push edx
push eax
push ebx
mov ecx, edi
mov dword [esp + 0x40c], 1
call fcn.0051a3f0
lea ecx, [esp + 0x44]
mov ebp, eax
mov dword [esp + 0x3fc], 0xffffffff
call fcn.00477890
test ebp, ebp
jne 0x5140b0
mov ecx, dword [edi + 0x1c]
call ecx
jmp 0x514221
mov edx, dword [esi + 0x78]
and edx, 2
je 0x5140be
mov eax, dword [ebx + 4]
mov dword [esi + 0x74], eax
cmp dword [esi + 0x4c], 0
jne 0x5140fb
mov edx, dword [edi + 0x2c]
push 0x114
lea ecx, [esp + 0x1c8]
push ecx
push 0x100
push ebp
call edx
cmp eax, 0x14
jl 0x514113
test byte [esp + 0x1c4], 2
je 0x5140fb
mov eax, dword [esp + 0x1c8]
push eax
lea ecx, [esi + 0x34]
call fcn.004b5f20
mov eax, dword [esp + 0x18]
mov dword [eax + 4], ebp
cmp dword [ebx + 0x94], 0
je 0x514127
lea eax, [ebx + 0x90]
jmp 0x514129
mov ecx, dword [edi + 0x1c]
call ecx
mov edx, dword [edi + 0x14]
push ebp
mov esi, eax
call edx
mov eax, esi
jmp 0x514221
xor eax, eax
mov ebp, dword [eax + 4]
movzx eax, byte [ebx + 0x10]
mov ecx, dword [esp + 0x40c]
mov edx, dword [ebx + 0x14]
push 0
push ecx
push edx
dec eax
push 0
or eax, 0x120
push eax
mov eax, dword [edi + 0xc]
push ebp
mov dword [esp + 0x34], ebp
call eax
mov esi, eax
test esi, esi
jne 0x514176
mov ecx, dword [edi + 0x1c]
call ecx
cmp byte [esp + 0x17], 0
mov dword [esp + 0x20], eax
jne 0x514200
mov edx, dword [edi + 0x14]
push ebp
call edx
jmp 0x514200
push 0xd0
lea eax, [esp + 0x68]
push 0
push eax
call fcn.00526600
mov edx, dword [edi + 0x28]
add esp, 0xc
push 0xd0
lea ecx, [esp + 0x68]
push ecx
push 0x120
push esi
mov dword [esp + 0x74], 0x100
call edx
test eax, eax
setne al
test al, al
je 0x5141e4
movzx edx, word [esp + 0x6a]
xor ecx, ecx
lea eax, [esp + 0x6c]
test edx, edx
jle 0x514275
mov ebp, dword [eax]
mov edx, ebp
shr edx, 0xc
test dl, 1
je 0x51424b
cmp dword [eax + 0xc], 0
jne 0x514260
mov eax, dword [edi + 0x24]
push 0x18
call eax
mov ebp, dword [esp + 0x1c]
mov edx, dword [edi + 0x1c]
call edx
mov dword [esp + 0x20], eax
mov eax, dword [edi + 0x10]
push esi
call eax
cmp byte [esp + 0x17], 0
jne 0x514200
mov ecx, dword [edi + 0x14]
push ebp
call ecx
mov eax, dword [esp + 0x18]
xor ecx, ecx
mov dword [eax + 8], ecx
mov dword [eax + 4], ecx
cmp dword [esp + 0x20], 0
je 0x51421d
mov edx, dword [esp + 0x20]
mov dword [ebx + 0xa4], edx
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x3f4]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x3dc]
xor ecx, esp
call fcn.00526a8a
add esp, 0x3ec
ret 0x10
mov edx, ebp
shr edx, 0xe
test dl, 1
je 0x514260
mov edx, 0xffff
cmp word [eax + 0x10], dx
je 0x514281
movzx edx, word [esp + 0x6a]
inc ecx
add eax, 0x14
cmp ecx, edx
jl 0x5141c3
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
mov dword [eax + 4], ebp
mov dword [eax + 8], esi
jmp 0x51421d
mov ecx, dword [edi + 0x24]
push 0x23
call ecx
jmp 0x5141e0