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

Disassembly:
sub esp, 0x7c
mov eax, dword [0x5dbef0]
xor eax, esp
mov dword [esp + 0x78], eax
mov edx, dword [esp + 0x80]
mov ecx, dword [esp + 0x90]
mov eax, dword [esp + 0x88]
push ebx
mov ebx, dword [esp + 0x90]
push ebp
mov ebp, dword [esp + 0x8c]
add eax, ebp
push esi
lea esi, [ecx + ebx]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x20], esi
mov ebx, ebp
push edi
mov edi, dword [edx + 0x2850]
lea esi, [edx + 0x1004]
mov dword [esp + 0x2c], esi
mov esi, dword [edx + 0x2810]
push ecx
mov dword [esp + 0x44], esi
lea ecx, [edx + 0x1004]
mov esi, dword [edx + 0x2814]
mov dword [esp + 0x40], esi
mov esi, dword [edx + 0x2818]
mov dword [esp + 0x20], eax
lea eax, [edx + 0x1808]
mov dword [esp + 0x3c], esi
mov esi, dword [esp + 0x1c]
push esi
push ecx
push eax
mov dword [esp + 0x40], eax
lea eax, [esp + 0x30]
push edx
push eax
lea eax, [esp + 0x30]
mov dword [esp + 0x5c], ebp
mov ebp, dword [edx + 0x2854]
push eax
lea eax, [esp + 0x50]
mov dword [esp + 0x44], edx
add ebp, edi
mov dword [esp + 0x2c], edi
push eax
mov dword [esp + 0x34], ebp
call fcn.00519f50
add esp, 0x20
cmp eax, 0xffffff88
ja 0x51a816
push 0xc
add esi, eax
lea eax, [esp + 0x80]
push 0
push eax
call fcn.00527d80
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x2c]
add eax, ecx
mov dword [esp + 0x80], ecx
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x30]
push 4
pop edx
sub eax, esi
mov dword [esp + 0x8c], edx
push eax
lea eax, [esp + 0x58]
mov dword [esp + 0x80], edx
push esi
push eax
call fcn.005150a2
add esp, 0x18
cmp eax, 0xffffff88
ja 0x51a813
push dword [esp + 0x28]
lea eax, [esp + 0x4c]
push eax
lea eax, [esp + 0x60]
push eax
call fcn.00515776
push dword [esp + 0x38]
lea eax, [esp + 0x58]
push eax
lea eax, [esp + 0x74]
push eax
call fcn.00515776
push dword [esp + 0x48]
lea eax, [esp + 0x64]
push eax
lea eax, [esp + 0x88]
push eax
call fcn.00515776
lea eax, [esp + 0x6c]
push eax
call fcn.00513cc3
add esp, 0x28
cmp eax, 2
jg 0x51a7d2
mov ebp, dword [esp + 0x34]
test ebp, ebp
je 0x51a7ca
lea eax, [esp + 0x48]
dec ebp
push eax
lea eax, [esp + 0x80]
push eax
call fcn.0051a1f7
pop ecx
pop ecx
push dword [esp + 0x38]
lea eax, [esp + 0x14]
push dword [esp + 0x40]
lea esi, [esp + 0x84]
push dword [esp + 0x48]
push dword [esp + 0x20]
push eax
sub esp, 0xc
mov edi, esp
push dword [esp + 0x3c]
movsd dword es:[edi], dword [esi]
push ebx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.0051a9c4
add esp, 0x28
cmp eax, 0xffffff88
ja 0x51a816
add ebx, eax
lea eax, [esp + 0x48]
push eax
call fcn.00513cc3
pop ecx
cmp eax, 2
jle 0x51a769
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
lea eax, [esp + 0x48]
push eax
call fcn.00509bdd
pop ecx
test eax, eax
je 0x51a813
mov eax, ebp
sub eax, edi
cmp edi, ebp
ja 0x51a813
lea esi, [eax + ebx]
cmp esi, dword [esp + 0x1c]
jbe 0x51a7f6
push 0xffffffffffffffba
jmp 0x51a815
test eax, eax
je 0x51a80b
cmp ebx, edi
je 0x51a809
push eax
push edi
push ebx
call fcn.00527800
add esp, 0xc
mov ebx, esi
sub ebx, dword [esp + 0x44]
mov eax, ebx
jmp 0x51a816
push 0xffffffffffffffec
pop eax
mov ecx, dword [esp + 0x88]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00526e79
add esp, 0x7c
ret