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

Disassembly:
sub esp, 0x7c
mov eax, dword [0x5dcf00]
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.0051ab50
add esp, 0x20
cmp eax, 0xffffff88
ja 0x51b416
push 0xc
add esi, eax
lea eax, [esp + 0x80]
push 0
push eax
call fcn.00528820
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.00515c38
add esp, 0x18
cmp eax, 0xffffff88
ja 0x51b413
push dword [esp + 0x28]
lea eax, [esp + 0x4c]
push eax
lea eax, [esp + 0x60]
push eax
call fcn.0051630e
push dword [esp + 0x38]
lea eax, [esp + 0x58]
push eax
lea eax, [esp + 0x74]
push eax
call fcn.0051630e
push dword [esp + 0x48]
lea eax, [esp + 0x64]
push eax
lea eax, [esp + 0x88]
push eax
call fcn.0051630e
lea eax, [esp + 0x6c]
push eax
call fcn.00514851
add esp, 0x28
cmp eax, 2
jg 0x51b3d2
mov ebp, dword [esp + 0x34]
test ebp, ebp
je 0x51b3ca
lea eax, [esp + 0x48]
dec ebp
push eax
lea eax, [esp + 0x80]
push eax
call fcn.0051adf7
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.0051b5c4
add esp, 0x28
cmp eax, 0xffffff88
ja 0x51b416
add ebx, eax
lea eax, [esp + 0x48]
push eax
call fcn.00514851
pop ecx
cmp eax, 2
jle 0x51b369
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
lea eax, [esp + 0x48]
push eax
call fcn.0050a6f5
pop ecx
test eax, eax
je 0x51b413
mov eax, ebp
sub eax, edi
cmp edi, ebp
ja 0x51b413
lea esi, [eax + ebx]
cmp esi, dword [esp + 0x1c]
jbe 0x51b3f6
push 0xffffffffffffffba
jmp 0x51b415
test eax, eax
je 0x51b40b
cmp ebx, edi
je 0x51b409
push eax
push edi
push ebx
call fcn.005282a0
add esp, 0xc
mov ebx, esi
sub ebx, dword [esp + 0x44]
mov eax, ebx
jmp 0x51b416
push 0xffffffffffffffec
pop eax
mov ecx, dword [esp + 0x88]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00527919
add esp, 0x7c
ret