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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x6357c1
mov eax, dword fs:[0]
push eax
sub esp, 0xfc
mov eax, dword [0x6e4770]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [ebp - 0x48], ebx
mov esi, dword [ebp + 8]
mov dword [ebp - 0x5c], esi
push dword [esi + 0x18]
push dword [ebx + 0x20]
call fcn.00517e90
movdqu xmm1, xmmword [esi + 0x1c]
mov dword [esi + 0x18], eax
mov edx, 0x40
mov ecx, 0x80
movdqa xmm0, xmm1
movd edi, xmm1
psrldq xmm0, 8
movd esi, xmm0
movdqu xmmword [ebp - 0x30], xmm1
mov dword [ebp - 0x50], edi
mov eax, esi
sub eax, edi
cmp eax, edx
cmovl ecx, edx
mov edx, 0x20
cmp eax, edx
mov eax, dword [ebx + 0x25a4]
cmovl ecx, edx
mov edx, dword [ebp - 0x5c]
mov dword [ebp - 0x4c], ecx
movd xmm6, ecx
mov dword [edx + 0xc], eax
cvtdq2ps xmm6, xmm6
movss dword [ebp - 0x70], xmm6
cmp edi, esi
jge 0x517486
movss xmm4, dword [0x643dcc]
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x2c]
cmp eax, edx
jge 0x517479
movd xmm7, edi
cvtdq2ps xmm7, xmm7
movaps xmm1, xmm7
subss xmm7, dword [0x643dc8]
addss xmm1, xmm6
movss dword [ebp - 0x84], xmm7
movss dword [ebp - 0x78], xmm1
mov edi, edi
movd xmm0, esi
movaps xmm3, xmm6
cvtdq2ps xmm0, xmm0
mov dword [ebp - 0x20], edi
add edi, ecx
cmp esi, edi
mov dword [ebp - 0x1c], eax
cmovl edi, esi
add ecx, eax
movd xmm5, eax
movaps xmm2, xmm6
subss xmm1, xmm0
mov dword [ebp - 0x74], ecx
cvtdq2ps xmm5, xmm5
cmp edx, ecx
mov dword [ebp - 0x18], edi
cmovl ecx, edx
mov dword [ebp - 0x14], ecx
subss xmm3, xmm1
movd xmm0, edx
movaps xmm1, xmm5
cvtdq2ps xmm0, xmm0
divss xmm3, xmm6
addss xmm1, xmm6
comiss xmm3, xmm4
subss xmm1, xmm0
subss xmm2, xmm1
divss xmm2, xmm6
jbe 0x51710f
movaps xmm3, xmm4
comiss xmm2, xmm4
jbe 0x517117
movaps xmm2, xmm4
movss xmm1, dword [0x643dc8]
lea edx, [ebp - 0x68]
mov eax, dword [ebx + 0x1c]
subss xmm5, xmm1
movd xmm0, edi
cvtdq2ps xmm0, xmm0
push 0
push edx
push 0
push 0x144
push 8
subss xmm0, xmm1
mov dword [ebp - 0x68], 0
push 0x70
push eax
movss dword [ebp - 0xfc], xmm7
movss dword [ebp - 0xf8], xmm5
movss dword [ebp - 0xe0], xmm0
movss dword [ebp - 0xc4], xmm0
movd xmm0, ecx
mov ecx, dword [eax]
cvtdq2ps xmm0, xmm0
mov dword [ebp - 0xf4], 0x3dcccccd
mov dword [ebp - 0xf0], 0x3c164fda
mov dword [ebp - 0xec], 0xffffffff
mov dword [ebp - 0xe8], 0
mov dword [ebp - 0xe4], 0
subss xmm0, xmm1
movss dword [ebp - 0xdc], xmm5
mov dword [ebp - 0xd8], 0x3dcccccd
mov dword [ebp - 0xd4], 0x3c164fda
mov dword [ebp - 0xd0], 0xffffffff
movss dword [ebp - 0xcc], xmm3
mov dword [ebp - 0xc8], 0
movss dword [ebp - 0xc0], xmm0
mov dword [ebp - 0xbc], 0x3dcccccd
mov dword [ebp - 0xb8], 0x3c164fda
mov dword [ebp - 0xb4], 0xffffffff
movss dword [ebp - 0xb0], xmm3
movss dword [ebp - 0xac], xmm2
movss dword [ebp - 0xa8], xmm7
movss dword [ebp - 0xa4], xmm0
mov dword [ebp - 0xa0], 0x3dcccccd
mov dword [ebp - 0x9c], 0x3c164fda
mov dword [ebp - 0x98], 0xffffffff
mov dword [ebp - 0x94], 0
movss dword [ebp - 0x90], xmm2
call dword [ecx + 0x68]
test eax, eax
js 0x51754f
mov eax, dword [ebp - 0x68]
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x7c], eax
imul edi, dword [ebx + 0x25a4], 0x70
lea edx, [ebp - 0x6c]
push 0
push edx
mov edx, dword [ebp - 0x4c]
lea esi, [ebp - 0xfc]
push 0
add edi, 0x2a4
mov dword [ebp - 4], 0
add edi, ebx
mov ecx, 0x1c
rep movsd dword es:[edi], dword [esi]
push dword [ebx + 0x14]
mov eax, dword [ebx + 0x1c]
push 0
push 1
push edx
mov dword [ebp - 0x6c], 0
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x5c]
test eax, eax
js 0x51753b
mov ebx, dword [ebp - 0x6c]
mov dword [ebp - 0x108], ebx
lea ecx, [ebp - 0x58]
mov dword [ebp - 0x58], 0
mov eax, dword [ebx]
push ecx
push 0
push ebx
mov byte [ebp - 4], 1
call dword [eax + 0x48]
test eax, eax
js 0x51752d
mov esi, dword [ebp - 0x58]
mov dword [ebp - 0x100], esi
mov edi, dword [ebp - 0x48]
lea edx, [ebp - 0x8c]
push edx
push esi
lea edx, [ebp - 0x20]
mov dword [ebp - 0x8c], 0
mov eax, dword [edi + 0x1c]
push edx
push dword [edi + 0x20]
mov dword [ebp - 0x88], 0
mov ecx, dword [eax]
push eax
mov byte [ebp - 4], 2
call dword [ecx + 0x78]
test eax, eax
js 0x51751f
mov eax, dword [ebp - 0x18]
lea edx, [ebp - 0x54]
sub eax, dword [ebp - 0x20]
push 0
push edx
mov edx, dword [ebp - 0x4c]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x14]
sub eax, dword [ebp - 0x1c]
push 0
push 0x15
push 1
mov dword [ebp - 0x34], eax
mov eax, dword [edi + 0x1c]
push 1
push edx
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x5c]
test eax, eax
js 0x51751f
mov edi, dword [ebp - 0x54]
mov dword [ebp - 0x44], edi
mov dword [ebp - 0x80], edi
lea ecx, [ebp - 0x60]
mov dword [ebp - 0x60], 0
mov eax, dword [edi]
push ecx
push 0
push edi
mov byte [ebp - 4], 3
call dword [eax + 0x48]
test eax, eax
js 0x517511
mov edi, dword [ebp - 0x60]
mov dword [ebp - 0x104], edi
mov eax, dword [ebp - 0x48]
lea edx, [ebp - 0x40]
push 0
push edx
push edi
mov eax, dword [eax + 0x1c]
push edx
push dword [ebp - 0x58]
mov byte [ebp - 4], 4
mov ecx, dword [eax]
push eax
call dword [ecx + 0x88]
test eax, eax
js 0x517500
mov eax, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x48]
push dword [eax + 0x18]
push edx
push dword [ebp - 0x60]
push dword [ebp - 0x54]
call fcn.00517c10
mov ecx, dword [ebp - 0x48]
mov edx, dword [ebp - 0x44]
mov dword [ebp - 0x80], 0
mov dword [ebp - 0x7c], 0
mov eax, dword [ecx + 0x25a4]
mov byte [ebp - 4], 3
mov dword [ecx + eax*4 + 0x164], edx
mov eax, dword [ecx + 0x25a4]
mov edx, dword [ebp - 0x64]
mov dword [ecx + eax*4 + 0x24], edx
inc dword [ecx + 0x25a4]
test edi, edi
je 0x517422
mov eax, dword [edi]
push edi
call dword [eax + 8]
mov byte [ebp - 4], 1
test esi, esi
je 0x517430
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov eax, dword [ebx]
push ebx
mov byte [ebp - 4], 0
call dword [eax + 8]
mov eax, dword [ebp - 0x74]
mov edx, dword [ebp - 0x24]
mov esi, dword [ebp - 0x28]
movss xmm4, dword [0x643dcc]
movss xmm6, dword [ebp - 0x70]
mov ebx, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x4c]
mov edi, dword [ebp - 0x50]
mov dword [ebp - 4], 0xffffffff
cmp eax, edx
jge 0x517476
movss xmm7, dword [ebp - 0x84]
movss xmm1, dword [ebp - 0x78]
jmp 0x5170b0
mov eax, dword [ebp - 0x2c]
add edi, ecx
mov dword [ebp - 0x50], edi
cmp edi, esi
jl 0x517083
mov ecx, dword [ebp - 0x5c]
mov eax, dword [ebx + 0x25a4]
mov esi, dword [ecx + 0x14]
mov dword [ecx + 0x10], eax
cmp esi, 0xffffffff
je 0x5174e0
mov eax, dword [ebx + 0x20]
lea edx, [ebp - 0x44]
mov dword [ebp - 0x44], 0
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x3c]
test eax, eax
js 0x51754f
push esi
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
mov esi, eax
lea eax, [ebp - 0x30]
push esi
push eax
push dword [ebp - 0x44]
call dword [sym.imp.USER32.dll_FillRect]
push esi
call dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, dword [ebx + 0x20]
push dword [ebp - 0x44]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x40]
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0052dfa4
mov esp, ebp
pop ebp
ret 4
mov byte [ebp - 4], 3
test edi, edi
je 0x51750e
mov eax, dword [edi]
push edi
call dword [eax + 8]
mov edi, dword [ebp - 0x44]
mov byte [ebp - 4], 2
test edi, edi
je 0x51751f
mov eax, dword [edi]
push edi
call dword [eax + 8]
mov byte [ebp - 4], 1
test esi, esi
je 0x51752d
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov byte [ebp - 4], 0
test ebx, ebx
je 0x51753b
mov eax, dword [ebx]
push ebx
call dword [eax + 8]
mov edx, dword [ebp - 0x64]
mov dword [ebp - 4], 0xffffffff
test edx, edx
je 0x51754f
mov eax, dword [edx]
push edx
call dword [eax + 8]
xor al, al
jmp 0x5174e2