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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x170
mov esi, esp
mov dword [esi + 0x158], ebp
lea eax, [esi + 0x160]
mov dword [esi + 0x10], ecx
mov dword [esi + 0x18], edx
mov dword [eax - 4], esp
or dword [eax + 8], 0xffffffff
mov dword [eax + 4], 0x586190
mov ecx, dword fs:[0]
mov dword [eax], ecx
mov dword fs:[0], eax
mov edi, dword [edx + 4]
mov ebx, dword [edx + 8]
mov dword [esi + 0x14], edi
mov ecx, edi
mov edx, ebx
push 0x2f
call fcn.004567c2
pop ecx
and dword [esi + 0x168], 0
test al, al
je 0x5057a3
mov eax, ebx
mov ecx, edi
mov edx, ebx
dec eax
push 0x6465b4
push eax
call fcn.004b95b5
pop ecx
pop edi
mov edi, eax
mov ebx, edx
jmp 0x505772
lea ecx, [esi + 0xf0]
mov edx, edi
push 3
push 0x647c21
push ebx
mov dword [esi + 4], ebx
call fcn.0044c500
mov ebx, dword [esi + 4]
add esp, 0xc
lea edi, [esi + 0x98]
push 0x40
lea eax, [esi + 0xf0]
push eax
push edi
call fcn.0058a110
add esp, 0xc
and dword [edi + 0x40], 0
mov ecx, edi
mov dword [edi + 0x44], ebx
mov word [edi + 0x48], 1
mov dword [edi + 0x50], 2
call fcn.004faa39
test eax, eax
je 0x50589a
mov dword [esi + 4], eax
mov dword [esi], edx
call fcn.00513872
mov edx, dword [esi]
mov ecx, dword [esi + 4]
lea edi, [esi + 0xf0]
mov dword [eax], ecx
mov dword [eax + 4], edx
lea edx, [esi + 0x40]
mov dword [esi], eax
mov dword [edx], 4
mov dword [edx + 4], eax
mov dword [edx + 8], 1
push 0x58
lea eax, [esi + 0x98]
push eax
push edi
call fcn.0058a110
add esp, 0xc
xor eax, eax
mov ecx, edi
inc eax
mov dword [esi + 4], eax
mov dword [esi + 0x168], 1
call fcn.004faa39
mov ebx, dword [esi + 4]
test eax, eax
je 0x505892
cmp ebx, dword [esi + 0x40]
mov ecx, dword [esi]
jne 0x50587a
lea ecx, [esi + 0x40]
mov dword [esi], eax
mov dword [esi + 8], edx
call fcn.00513897
mov edx, dword [esi + 8]
mov eax, dword [esi]
mov ecx, dword [esi + 0x44]
mov ebx, dword [esi + 4]
mov dword [ecx + ebx*8], eax
mov dword [ecx + ebx*8 + 4], edx
inc ebx
mov dword [esi], ecx
lea ecx, [esi + 0xf0]
mov dword [esi + 4], ebx
mov dword [esi + 0x48], ebx
jmp 0x505845
mov ecx, dword [esi + 0x40]
mov eax, dword [esi + 0x44]
jmp 0x5058a1
push 4
pop eax
xor ebx, ebx
xor ecx, ecx
lea edi, [eax + ebx*8]
cmp ebx, 2
mov dword [esi + 0x6c], eax
mov dword [esi + 0x70], ecx
mov dword [esi + 0x74], eax
mov dword [esi + 0x78], edi
jne 0x5058df
lea ebx, [eax + 8]
mov dword [esi + 0x74], ebx
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov dword [esi + 4], ecx
mov dword [esi], edx
push 4
push 0x647c0f
call fcn.004ae91f
pop ecx
pop edx
test al, al
je 0x5059e8
xor ecx, ecx
jmp 0x5058e3
xor ecx, ecx
mov ebx, eax
cmp ebx, edi
je 0x505a5d
lea eax, [ebx + 8]
mov dword [esi + 0x94], ecx
lea ecx, [esi + 0xf0]
mov dword [esi + 0x74], eax
mov edx, dword [ebx]
mov eax, dword [ebx + 4]
mov dword [esi + 0x168], 2
push 0x40
push eax
call fcn.00505f93
pop eax
pop ecx
push 0x28
lea eax, [esi + 0xf0]
push eax
lea edi, [esi + 0x98]
push edi
call fcn.0058a110
add esp, 0xc
mov ecx, edi
mov dword [esi + 0xc0], 2
call fcn.004fada8
test eax, eax
je 0x505a7c
mov dword [esi + 4], eax
mov dword [esi], edx
call fcn.00513872
mov edx, dword [esi]
mov ecx, dword [esi + 4]
lea edi, [esi + 0xf0]
mov dword [eax], ecx
mov dword [eax + 4], edx
lea edx, [esi + 0x40]
mov dword [esi], eax
mov dword [edx], 4
mov dword [edx + 4], eax
mov dword [edx + 8], 1
push 0x2c
lea eax, [esi + 0x98]
push eax
push edi
call fcn.0058a110
add esp, 0xc
xor eax, eax
mov ecx, edi
inc eax
mov dword [esi + 4], eax
mov dword [esi + 0x168], 3
call fcn.004fada8
mov edi, dword [esi + 4]
test eax, eax
je 0x5059dd
cmp edi, dword [esi + 0x40]
mov ecx, dword [esi]
jne 0x5059c5
lea ecx, [esi + 0x40]
mov dword [esi], eax
mov dword [esi + 8], edx
call fcn.00513897
mov edx, dword [esi + 8]
mov eax, dword [esi]
mov ecx, dword [esi + 0x44]
mov edi, dword [esi + 4]
mov dword [ecx + edi*8], eax
mov dword [ecx + edi*8 + 4], edx
inc edi
mov dword [esi], ecx
lea ecx, [esi + 0xf0]
mov dword [esi + 4], edi
mov dword [esi + 0x48], edi
jmp 0x505990
mov eax, dword [esi + 0x40]
mov ecx, dword [esi + 0x44]
jmp 0x505a83
mov ecx, dword [esi + 4]
mov edx, dword [esi]
push 6
push 0x646599
call fcn.004ae91f
pop ecx
pop edx
mov cl, 1
test al, al
jne 0x5058e3
mov ecx, dword [esi + 4]
mov edx, dword [esi]
push 7
push 0x64659f
call fcn.004ae91f
pop ecx
pop edx
mov cl, 2
test al, al
jne 0x5058e3
mov ecx, dword [esi + 4]
mov edx, dword [esi]
push 5
push 0x6465a6
call fcn.004ae91f
pop ecx
pop edx
mov cl, 3
test al, al
jne 0x5058e3
mov ecx, dword [esi + 4]
mov edx, dword [esi]
push 6
push 0x6465ab
call fcn.004ae91f
mov cl, 3
add esp, 8
test al, al
jne 0x5058e3
push 2
pop eax
mov ecx, dword [esi + 0x10]
mov dword [ecx], eax
mov dword [ecx + 4], eax
mov dword [ecx + 0x4c], 0x80000000
and dword [ecx + 0x58], 0
mov byte [ecx + 0x60], 9
jmp 0x505d32
push 4
pop ecx
xor edi, edi
xor eax, eax
mov dword [esi + 0x7c], ecx
mov dword [esi + 0x80], eax
push 2
pop ebx
cmp edi, 2
lea eax, [ecx + edi*8]
mov dword [esi + 0x84], ecx
mov dword [esi + 0x88], eax
jne 0x505b9f
mov dword [esi + 0x90], ecx
lea ecx, [eax - 8]
mov dword [esi + 0x88], ecx
mov dword [esi + 0x8c], ecx
lea ecx, [esi + 0x40]
mov edx, dword [eax - 8]
mov eax, dword [eax - 4]
mov dword [esi + 0x168], 4
push 0x3a
push 2
push eax
call fcn.00505fe2
add esp, 0xc
lea ecx, [esi + 0x1c]
lea edx, [esi + 0x40]
call fcn.00506014
mov edx, dword [esi + 0x24]
mov edi, dword [esi + 0x20]
mov eax, dword [esi + 0x1c]
cmp edx, 2
lea ecx, [edi + edx*8]
mov dword [esi + 0x40], edi
mov dword [esi + 0x44], eax
mov dword [esi + 0x48], edi
mov dword [esi + 0x2c], edx
mov dword [esi + 0x4c], ecx
jne 0x505bab
lea eax, [edi + 8]
mov dword [esi + 4], edi
mov dword [esi + 0x48], eax
mov ecx, dword [edi + 4]
mov eax, dword [edi]
mov dword [esi + 0x168], 5
mov dword [esi + 8], eax
mov dword [esi], ecx
call fcn.0046a9f5
mov dword [esi + 0xc], eax
mov edi, dword [esi]
mov ebx, edx
push edi
push dword [esi + 8]
push edx
call fcn.0058a110
add esp, 0xc
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 4]
mov dword [esi + 0x20], ebx
mov dword [esi + 0x24], edi
mov dword [esi + 0x1c], eax
lea eax, [ecx + 0x10]
mov dword [esi + 0x48], eax
mov eax, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
mov dword [esi + 0x168], 6
mov dword [esi], eax
mov dword [esi + 4], ecx
call fcn.0046a9f5
mov edi, eax
push dword [esi + 4]
push dword [esi]
mov dword [esi], edx
push edx
call fcn.0058a110
add esp, 0xc
mov eax, dword [esi + 0x1c]
mov dword [esi + 0x28], eax
mov eax, dword [esi + 0x20]
mov dword [esi + 8], eax
mov eax, dword [esi + 0x24]
mov dword [esi + 0xc], eax
push 3
pop eax
mov dword [esi + 0x30], eax
push 2
pop ebx
jmp 0x505bb4
mov edx, 0x80000000
mov edi, 0x80000000
jmp 0x505bd5
push 2
pop ebx
mov dword [esi + 0x28], ebx
mov dword [esi + 0x30], ebx
lea ecx, [esi + 0x40]
call fcn.00513df5
cmp dword [esi + 0x2c], 2
jne 0x505c82
mov eax, dword [esi + 0x8c]
mov ecx, dword [esi + 0x90]
mov edx, dword [esi + 0x28]
mov dword [esi + 0x34], edx
mov edx, dword [esi + 8]
mov dword [esi + 0x1c], edi
mov edi, dword [esi]
cmp eax, ecx
mov dword [esi + 0x38], edx
mov edx, dword [esi + 0xc]
mov dword [esi + 0x20], edi
mov dword [esi + 0x3c], edx
mov edx, dword [esi + 4]
mov dword [esi + 0x24], edx
je 0x505cff
lea ecx, [eax - 8]
mov dword [esi + 0x88], ecx
lea ecx, [esi + 0xf0]
mov edx, dword [eax - 8]
mov eax, dword [eax - 4]
mov dword [esi + 0x168], 7
push 0x3a
push eax
call fcn.00505f93
pop eax
pop ecx
lea ecx, [esi + 0x40]
lea edx, [esi + 0xf0]
call fcn.00513611
mov eax, dword [esi + 0x44]
mov ebx, dword [esi + 0x48]
mov edx, dword [esi + 0x40]
test ebx, ebx
lea edi, [eax + ebx*8]
mov dword [esi + 0x98], eax
mov dword [esi + 0x9c], edx
mov dword [esi + 0xa0], eax
mov dword [esi + 0xa4], edi
je 0x505cf1
lea edx, [eax + 8]
cmp ebx, 1
mov dword [esi + 0xa0], edx
mov ecx, dword [eax]
mov dword [esi + 8], ecx
mov ecx, dword [eax + 4]
jne 0x505d5d
mov dword [esi], 0
jmp 0x505d71
mov ebx, dword [esi + 0x10]
lea eax, [ebx + 0x1c]
push 0x30
lea ecx, [esi + 0x98]
push ecx
push eax
call fcn.0058a110
add esp, 0xc
mov eax, dword [esi + 0x34]
mov ecx, dword [esi + 0x38]
mov dword [ebx + 0x4c], 0x80000000
mov dword [ebx + 0x50], eax
mov dword [ebx + 0x54], ecx
and dword [ebx + 0x58], 0
mov byte [ebx + 0x60], 9
lea eax, [ebx + 0x61]
push 0x63
lea ecx, [esi + 0xf0]
push ecx
push eax
call fcn.0058a110
add esp, 0xc
mov eax, dword [esi + 0x30]
mov ecx, dword [esi + 0x28]
mov edx, dword [esi + 0xc]
mov dword [ebx], eax
mov dword [ebx + 4], ecx
mov ecx, dword [esi + 8]
mov dword [ebx + 0xc], edx
mov edx, dword [esi + 4]
mov dword [ebx + 8], ecx
mov ecx, dword [esi]
mov dword [ebx + 0x10], edi
mov dword [ebx + 0x18], edx
mov dword [ebx + 0x14], ecx
jmp 0x505d2a
lea ecx, [esi + 0x98]
call fcn.00513df5
push 2
pop ebx
mov eax, dword [esi + 0x10]
mov dword [eax + 0x4c], 0x80000000
and dword [eax + 0x58], 0
mov byte [eax + 0x60], 9
mov dword [eax + 4], ebx
mov dword [eax], ebx
lea eax, [esi + 0x1c]
push eax
call fcn.004fb795
pop eax
lea eax, [esi + 0x34]
push eax
call fcn.004fb795
pop eax
lea ecx, [esi + 0x7c]
call fcn.00513df5
mov edi, dword [esi + 0x18]
mov ebx, dword [esi + 0x14]
lea ecx, [esi + 0x6c]
call fcn.00513df5
mov ecx, dword [edi]
mov edx, ebx
call fcn.004d351c
mov eax, dword [esi + 0x160]
mov dword fs:[0], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
lea edx, [eax + 0x10]
mov dword [esi + 0xa0], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [esi], edx
mov dword [esi + 0x2c], eax
mov dword [esi + 0x168], 8
mov dword [esi + 4], ecx
call fcn.0046a9f5
mov ebx, edx
mov dword [esi + 0xc], eax
push dword [esi + 4]
push dword [esi + 8]
push edx
call fcn.0058a110
add esp, 0xc
mov edx, dword [esi]
test edx, edx
je 0x505dc0
lea edi, [esi + 0xf0]
mov ecx, edi
push dword [esi + 0x2c]
call fcn.0044da70
pop eax
cmp byte [edi], 0
mov edi, 0x1f90
jne 0x505dc5
mov edi, dword [esi + 0xf4]
jmp 0x505dc5
mov edi, 0x1f90
lea ecx, [esi + 0x98]
call fcn.00513df5
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 0xc]
movsd xmm0, qword [esi + 0x34]
mov dword [ecx + 4], eax
mov eax, dword [esi + 4]
mov dword [ecx + 8], ebx
mov dword [ecx + 0xc], eax
mov eax, dword [esi + 0x3c]
movsd qword [ecx + 0x10], xmm0
movsd xmm0, qword [esi + 0x1c]
mov dword [ecx + 0x18], eax
mov eax, dword [esi + 0x24]
movsd qword [ecx + 0x1c], xmm0
mov dword [ecx + 0x24], eax
mov eax, dword [esi + 0x94]
mov dword [ecx + 0x28], edi
mov byte [ecx + 0x2c], al
mov dword [ecx], 3
lea ecx, [esi + 0x7c]
call fcn.00513df5
lea ecx, [esi + 0x6c]
call fcn.00513df5
mov edi, dword [esi + 0x18]
mov ebx, dword [esi + 0x14]
jmp 0x505d40