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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x188
mov eax, dword [esp + 0x1a0]
mov ebp, dword [esp + 0x1a8]
mov edi, dword [esp + 0x1a4]
mov esi, ecx
mov dword [esp + 0x6c], ecx
shr esi, 1
cmp esi, eax
mov dword [esp + 0x74], eax
jae 0x55151e
mov eax, dword [edi + 0x10]
mov edx, dword [edi]
lea esi, [esp + 0xc8]
mov ecx, esi
mov dword [esp + 0x10], eax
push 0x9f433c
push dword [edi + 8]
push dword [edi + 4]
call fcn.0047225f
add esp, 0xc
mov edx, dword [esi + 4]
mov eax, dword [esi + 8]
lea esi, [esp + 0x128]
mov ecx, esi
mov dword [esp + 0xc], edx
mov dword [esp + 8], eax
push eax
call fcn.00550939
pop eax
mov ecx, dword [esi + 4]
mov edi, dword [esi]
mov eax, dword [esi + 8]
test ecx, ecx
mov dword [esp + 0x78], ecx
mov dword [esp + 0x88], edi
mov dword [esp + 0x7c], eax
mov dword [esp + 0x84], 1
je 0x5517dd
cmp eax, edi
jne 0x5517dd
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 8]
mov esi, dword [esp + 0xc8]
xor ebx, ebx
add edi, eax
sub edi, eax
cmovb edi, ebx
call fcn.00550979
cmp edi, eax
mov dword [esp + 0x38], esi
cmovae edi, eax
test esi, esi
je 0x5517c4
mov ecx, dword [ebp + 4]
mov eax, dword [ebp]
mov edx, dword [ebp + 8]
mov dword [esp + 0x24], edi
mov dword [esp + 0x30], ecx
mov ecx, dword [ebp + 0xc]
mov dword [esp + 0x34], eax
mov dword [esp + 0x2c], edx
mov dword [esp + 0x28], ecx
cmp ebx, edi
je 0x5517c4
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x38]
lea eax, [ebx + 1]
mov edi, dword [esp + 0x34]
mov dword [esp + 0x48], eax
mov eax, ebx
imul eax, ecx
mov esi, dword [edi + 0xc]
add edx, eax
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0xc]
sub edx, eax
mov eax, dword [esp + 0x30]
cmp edx, ecx
cmovae edx, ecx
add ebx, dword [esp + 0x10]
mov ecx, esi
mov dword [esp + 0x40], edx
xor edx, edx
mov ebp, dword [eax]
inc edx
mov dword [esp + 0x50], ebx
mov ebx, dword [eax + 8]
mov eax, dword [esp + 0x2c]
movzx eax, word [eax]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x28]
mov eax, dword [eax]
mov dword [esp + 0x3c], eax
call fcn.005779fb
lea ecx, [esp + 0xc8]
mov dword [esp + 0x128], eax
mov dword [esp + 0x12c], edx
mov dword [esp + 0x130], esi
lea edx, [esp + 0x128]
mov dword [esp + 0x14], ebx
push ebx
call fcn.005510d4
pop eax
mov ecx, dword [esp + 0xc8]
mov eax, dword [edi]
add ebp, 8
xor ebx, ebx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xd0]
mov dword [esp + 0x18], ecx
imul ecx, dword [edi + 8], 0x14
mov edi, ebp
test ecx, ecx
je 0x5514ee
cmp dword [esp + 0x14], ebx
je 0x5516ea
lea edx, [ebx + 1]
mov esi, dword [eax + 0xc]
mov ebp, dword [eax + 0x10]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp], edx
lea edx, [eax + 0x14]
mov dword [esp + 0x68], edx
mov edx, dword [eax]
mov dword [esp + 0x60], edx
mov edx, dword [eax + 4]
mov dword [esp + 0x64], edx
mov edx, dword [eax + 8]
mov eax, dword [edi - 8]
mov dword [esp + 0x5c], eax
mov eax, dword [edi]
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x54], eax
push 0x9f568c
push ebx
call fcn.004cece0
pop ecx
pop edx
push dword [eax + 8]
push dword [eax]
push dword [esp + 0x54]
push dword [esp + 0x5c]
push ebp
push esi
push dword [esp + 0x70]
push dword [esp + 0x70]
push dword [esp + 0x7c]
push dword [esp + 0x84]
mov eax, dword [esp + 0x8c]
call dword [eax + 0xc]
mov ecx, dword [esp + 0x2c]
add esp, 0x28
mov eax, dword [esp + 0x68]
mov ebx, dword [esp]
add ecx, 0xffffffec
add edi, 0xc
jmp 0x55144a
push dword [esp + 0x40]
push dword [esp + 0x48]
push dword [esp + 0x20]
push dword [esp + 0x28]
call dword [esp + 0x4c]
add esp, 0x10
lea ecx, [esp + 0xc8]
call fcn.005511ad
mov ebx, dword [esp + 0x48]
mov edi, dword [esp + 0x24]
jmp 0x551391
mov ebx, dword [esp + 0x19c]
test dl, dl
je 0x551537
call fcn.00578e4a
shr ebx, 1
cmp eax, ebx
cmova ebx, eax
jmp 0x551541
test ebx, ebx
je 0x5512ca
shr ebx, 1
mov ecx, dword [edi + 0xc]
lea eax, [esp + 0x70]
mov ebp, dword [edi + 8]
mov edx, dword [edi]
mov dword [eax], ebx
lea eax, [esp + 0x20]
mov dword [eax], esi
mov eax, dword [edi + 4]
mov dword [esp + 4], ecx
mov ecx, dword [edi + 0x10]
mov ebx, ebp
lea edi, [esp + 0x128]
imul ebx, esi
cmp ebx, eax
cmovae ebx, eax
mov dword [esp], ecx
mov ecx, edi
push 0x9f432c
push ebx
push eax
call fcn.004f23d6
add esp, 0xc
lea eax, [esp + 0x6c]
mov edx, dword [esp]
mov ebx, dword [esp + 4]
mov ecx, dword [esp + 0x1a8]
mov dword [esp + 0x84], eax
lea eax, [esp + 0x20]
mov dword [esp + 0x88], eax
lea eax, [esp + 0x70]
mov dword [esp + 0x8c], eax
mov eax, dword [edi + 8]
add esi, edx
mov dword [esp + 0x90], eax
mov eax, dword [edi + 0xc]
mov dword [esp + 0x94], eax
lea eax, [esp + 0x20]
mov dword [esp + 0x98], ebp
mov dword [esp + 0x9c], ebx
mov dword [esp + 0xa0], esi
mov dword [esp + 0xa4], ecx
mov dword [esp + 0xa8], eax
lea eax, [esp + 0x70]
mov dword [esp + 0xac], eax
mov eax, dword [edi]
mov dword [esp + 0xb0], eax
mov eax, dword [edi + 4]
mov dword [esp + 0xb4], eax
mov dword [esp + 0xb8], ebp
mov dword [esp + 0xbc], ebx
mov dword [esp + 0xc0], edx
mov dword [esp + 0xc4], ecx
call fcn.00551818
test eax, eax
je 0x551649
lea ecx, [esp + 0x84]
mov edx, eax
push 0
call fcn.00551822
pop eax
jmp 0x5517c4
call fcn.00577a4b
mov esi, dword [eax]
lea ebx, [esi + 0x40]
call fcn.00551818
test eax, eax
je 0x5516fd
cmp dword [eax + 0x8c], esi
mov ebp, eax
je 0x5517cf
mov edx, dword [ebp + 0x88]
mov eax, ebp
add eax, 0x8c
push 0x11
pop ecx
lea edi, [esp + 0xc8]
lea esi, [esp + 0x84]
rep movsd dword es:[edi], dword [esi]
lea esi, [esp + 0x118]
mov ecx, ebx
mov dword [esi], eax
and dword [esi + 4], 0
mov dword [esi + 8], edx
mov byte [esi + 0xc], 1
and dword [esi - 0xc], 0
lea eax, [esp + 0xc8]
mov edx, 0x551ae7
push eax
call fcn.00578c68
pop eax
mov ecx, ebp
mov edx, esi
call fcn.00551a43
push 0x18
pop ecx
lea eax, [esp + 0x128]
lea esi, [esp + 0xc8]
mov edi, eax
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x78]
mov edx, dword [eax + 0x4c]
movsd xmm0, qword [eax + 0x44]
jmp 0x5517b8
mov ecx, dword [esp + 0x14]
mov edx, ecx
push 0x9f567c
call fcn.0063cc20
pop eax
ud2
xor ecx, ecx
call fcn.00578e68
test eax, eax
je 0x5517fb
lea edx, [esp + 0xcc]
push 0x11
pop ecx
lea esi, [esp + 0x84]
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov dword [edx - 4], eax
lea esi, [esp + 0xc8]
mov ecx, ebx
and dword [edx + 0x44], 0
mov edx, 0x551b75
push esi
call fcn.00578c68
pop eax
mov esi, dword [esi]
lea edi, [esp + 0x128]
mov ecx, edi
mov edx, esi
call fcn.00438e75
mov ecx, edi
mov edx, 0x9fd46c
call fcn.00577539
add esi, 8
cmp byte [eax + 5], 0
jne 0x551789
xor ebx, ebx
test dl, dl
mov edx, esi
mov ecx, edi
setne bl
push ebx
push eax
call fcn.00577575
pop eax
pop ecx
mov ecx, edi
mov edx, 0x9fd47c
call fcn.00577539
and dl, 1
jmp 0x55175e
movzx edx, dl
mov ecx, eax
mov byte [eax + 5], 0
call fcn.00608264
push 0x15
pop ecx
lea eax, [esp + 0x128]
lea esi, [esp + 0xc8]
mov edi, eax
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x78]
mov edx, dword [eax + 0x50]
movsd xmm0, qword [eax + 0x48]
mov dword [ecx + 8], edx
movsd qword [ecx], xmm0
call fcn.00551220
add esp, 0x188
pop esi
pop edi
pop ebx
pop ebp
ret
lea ecx, [esp + 0x84]
mov edx, ebp
jmp 0x55163c
and dword [esp + 0x128], 0
lea ecx, [esp + 0x78]
lea edx, [esp + 0x84]
push esi
call fcn.00641d2a
jmp 0x5516fa
push 0x46
pop edx
mov ecx, 0xa38c3c
push 0xa38cd4
push 0x9f494c
push edi
call fcn.0063cff0
add esp, 0xc
ud2