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

Disassembly:
sub esp, 0x7c
mov eax, dword [0x5dcef0]
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.0051aa30
add esp, 0x20
cmp eax, 0xffffff88
ja 0x51b2f6
push 0xc
add esi, eax
lea eax, [esp + 0x80]
push 0
push eax
call fcn.00528860
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.00515b82
add esp, 0x18
cmp eax, 0xffffff88
ja 0x51b2f3
push dword [esp + 0x28]
lea eax, [esp + 0x4c]
push eax
lea eax, [esp + 0x60]
push eax
call fcn.00516256
push dword [esp + 0x38]
lea eax, [esp + 0x58]
push eax
lea eax, [esp + 0x74]
push eax
call fcn.00516256
push dword [esp + 0x48]
lea eax, [esp + 0x64]
push eax
lea eax, [esp + 0x88]
push eax
call fcn.00516256
lea eax, [esp + 0x6c]
push eax
call fcn.005147a3
add esp, 0x28
cmp eax, 2
jg 0x51b2b2
mov ebp, dword [esp + 0x34]
test ebp, ebp
je 0x51b2aa
lea eax, [esp + 0x48]
dec ebp
push eax
lea eax, [esp + 0x80]
push eax
call fcn.0051acd7
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.0051b4a4
add esp, 0x28
cmp eax, 0xffffff88
ja 0x51b2f6
add ebx, eax
lea eax, [esp + 0x48]
push eax
call fcn.005147a3
pop ecx
cmp eax, 2
jle 0x51b249
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
lea eax, [esp + 0x48]
push eax
call fcn.0050a6bd
pop ecx
test eax, eax
je 0x51b2f3
mov eax, ebp
sub eax, edi
cmp edi, ebp
ja 0x51b2f3
lea esi, [eax + ebx]
cmp esi, dword [esp + 0x1c]
jbe 0x51b2d6
push 0xffffffffffffffba
jmp 0x51b2f5
test eax, eax
je 0x51b2eb
cmp ebx, edi
je 0x51b2e9
push eax
push edi
push ebx
call fcn.005282e0
add esp, 0xc
mov ebx, esi
sub ebx, dword [esp + 0x44]
mov eax, ebx
jmp 0x51b2f6
push 0xffffffffffffffec
pop eax
mov ecx, dword [esp + 0x88]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00527959
add esp, 0x7c
ret