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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x7c
mov eax, dword [0x6670f4]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push esi
mov esi, dword [ebp + 0x24]
mov dword [ebp - 0x54], eax
mov eax, dword [ebp + 0xc]
push edi
mov edi, ecx
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x48], eax
mov eax, dword [ebp + 0x14]
mov ecx, dword [edi + 0x50]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0x50], edi
mov dword [ebp - 0x7c], eax
test ecx, ecx
je 0x55c273
push ebx
mov ebx, dword [edi + 0x4c]
mov dword [ebp - 0x64], ebx
test ebx, ebx
je 0x55c272
test esi, esi
je 0x55c272
cmp dword [ebp + 0x28], 0
je 0x55c272
mov dword [ebp - 0x6c], 0
mov dword [ebp - 0x68], 0
call fcn.00514df0
push eax
push esi
lea eax, [ebp - 0x6c]
push 0x609ccc
push eax
call fcn.0051e360
add esp, 0x10
test eax, eax
je 0x55b906
mov ecx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x68]
mov dword [ecx], eax
xorps xmm0, xmm0
xor edx, edx
movlpd qword [ebp - 0x6c], xmm0
mov eax, dword [ebx + 0x78]
mov ecx, dword [ebx + 0x74]
sub eax, ecx
mov dword [ebp - 0x38], edx
test eax, 0xfffffffc
jle 0x55bd0a
nop word [eax + eax]
lea esi, [edx*4]
push dword [esi + ecx]
mov ecx, edi
mov dword [ebp - 0x60], esi
call fcn.0052eba0
mov ecx, dword [ebx + 0x74]
mov dword [ebp - 0x5c], eax
push dword [ecx + esi]
mov ecx, edi
call fcn.0052f0e0
test eax, eax
je 0x55bcf0
mov eax, dword [edi + 0x4c]
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x40], 0
cmp dword [eax + 0x84], 0
mov eax, dword [ebx + 0x74]
mov eax, dword [esi + eax]
je 0x55b9dd
mov ecx, dword [edi + 0x50]
mov esi, dword [eax + 8]
call fcn.00514df0
push eax
push dword [ebp - 0x5c]
lea eax, [ebp - 0x6c]
push esi
push eax
call fcn.0051e360
mov eax, dword [ebx + 0x74]
add esp, 0x10
mov edx, dword [ebp - 0x48]
mov ebx, dword [ebp - 0x38]
mov edi, dword [ebp - 0x68]
mov ecx, dword [ebp - 0x3c]
mov esi, dword [edx]
add edi, esi
mov eax, dword [eax + ebx*4]
mov edx, dword [ebp - 0x6c]
mov ecx, dword [ecx]
add edx, ecx
mov ebx, dword [ebp - 0x64]
mov dword [eax + 0x10], esi
mov esi, dword [ebp - 0x60]
mov dword [eax + 0x18], edi
mov edi, dword [ebp - 0x50]
mov dword [eax + 0xc], ecx
mov dword [eax + 0x14], edx
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x6c]
mov dword [ebp - 0x58], ecx
add dword [eax], ecx
mov eax, dword [ebp - 0x68]
mov dword [ebp - 0x40], eax
jmp 0x55b9f3
mov edx, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x3c]
mov edx, dword [edx]
mov ecx, dword [ecx]
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], edx
mov dword [eax + 0x14], ecx
mov dword [eax + 0x18], edx
mov eax, dword [edi + 0x4c]
cmp dword [eax + 0x2c], 2
jne 0x55bb09
mov eax, dword [ebx + 0x74]
xorps xmm0, xmm0
mov eax, dword [esi + eax]
movups xmmword [eax + 0x3c], xmm0
mov eax, dword [edi + 0x50]
mov eax, dword [eax + 0x58]
mov ecx, dword [eax + 0x3c]
test ecx, ecx
je 0x55bb09
mov eax, dword [ebx + 0x74]
mov eax, dword [esi + eax]
mov eax, dword [eax + 0x38]
test eax, eax
je 0x55bb09
push eax
call fcn.0054e8b0
mov dword [ebp - 0x60], eax
test eax, eax
je 0x55bb09
mov edx, dword [eax]
xorps xmm0, xmm0
mov ecx, eax
movups xmmword [ebp - 0x24], xmm0
call dword [edx + 8]
mov ecx, dword [ebp - 0x60]
mov esi, eax
mov edx, dword [ecx]
call dword [edx + 4]
mov ecx, dword [ebp - 0x50]
mov edi, eax
push 0
push esi
push edi
mov ecx, dword [ecx + 0x50]
call fcn.00510c50
mov esi, dword [ebp - 0x44]
add eax, dword [esi]
push eax
lea eax, [ebp - 0x24]
push edi
push eax
call fcn.00518df0
add esp, 0x18
test eax, eax
je 0x55bb06
mov eax, dword [ebp - 0x3c]
mov ebx, dword [ebp - 0x64]
mov ecx, dword [eax]
lea eax, [ecx + 3]
sub ecx, dword [ebp - 0x24]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x60], ecx
mov ecx, dword [ebp - 0x1c]
mov eax, dword [eax]
add eax, eax
mov dword [ebp - 0x70], eax
sub eax, dword [ebp - 0x18]
add eax, dword [esi]
add eax, dword [ebp - 0x20]
cdq
sub eax, edx
mov edx, dword [ebp - 0x60]
sar eax, 1
add edx, 3
mov dword [ebp - 0x4c], eax
add ecx, edx
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x70]
sub eax, dword [ebp - 0x20]
add eax, dword [esi]
add eax, dword [ebp - 0x18]
cdq
sub eax, edx
mov dword [ebp - 0xc], ecx
sar eax, 1
mov edx, ecx
mov dword [ebp - 8], eax
sub edx, dword [ebp - 0x14]
je 0x55bb06
sub eax, dword [ebp - 0x4c]
je 0x55bb06
mov edi, dword [ebp - 0x38]
lea eax, [ecx + 3]
mov ecx, dword [ebp - 0x3c]
movups xmm0, xmmword [ebp - 0x14]
mov dword [ecx], eax
mov eax, dword [ebp - 0x58]
add eax, 6
add eax, edx
mov dword [ebp - 0x58], eax
mov eax, dword [ebx + 0x74]
mov eax, dword [eax + edi*4]
movups xmmword [eax + 0x3c], xmm0
mov edi, dword [ebp - 0x50]
mov eax, dword [ebx + 0x74]
mov ecx, dword [ebp - 0x38]
mov esi, dword [eax + ecx*4]
mov eax, dword [esi]
test al, 8
je 0x55bb2e
push eax
mov eax, dword [ebp - 0x44]
mov ecx, edi
push dword [eax]
lea eax, [ebp - 0x6c]
push dword [esi + 4]
push eax
call fcn.0052edd0
jmp 0x55bb4a
mov ecx, dword [edi + 0x50]
mov esi, dword [esi + 4]
call fcn.00514df0
push eax
push dword [ebp - 0x5c]
lea eax, [ebp - 0x6c]
push esi
push eax
call fcn.0051e360
add esp, 0x10
mov eax, dword [ebp - 0x68]
mov ecx, dword [ebp - 0x38]
mov esi, dword [ebp - 0x6c]
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x48]
mov edi, dword [eax]
mov eax, dword [ebp - 0x3c]
mov edx, dword [eax]
add esi, edx
mov eax, dword [ebx + 0x74]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x5c]
add eax, edi
mov dword [ecx + 0x1c], edx
mov edx, dword [ebp - 0x58]
mov dword [ecx + 0x20], edi
mov dword [ecx + 0x24], esi
mov dword [ecx + 0x28], eax
mov eax, dword [ebx + 0x74]
mov ecx, dword [ebp - 0x38]
add edx, dword [ebp - 0x6c]
mov dword [ebp - 0x58], edx
mov esi, dword [eax + ecx*4]
mov eax, dword [esi]
test eax, 0x2000
je 0x55bb9b
mov ecx, 0xa8
jmp 0x55bbc7
test eax, 0x40000
je 0x55bba9
mov ecx, 0xe8
jmp 0x55bbc7
test eax, 0x400100
jne 0x55bbc2
test eax, 0x3000000
je 0x55bc8d
mov ecx, 0x168
jmp 0x55bbc7
mov ecx, 0x128
mov edi, dword [ebp - 0x50]
add ecx, edi
mov dword [ebp - 0x4c], ecx
je 0x55bc90
lea ecx, [esi + 0x1c]
movups xmm0, xmmword [ecx]
movups xmmword [ebp - 0x34], xmm0
test al, 8
je 0x55bc0a
push eax
push dword [esi + 4]
lea eax, [ebp - 0x34]
push ecx
push eax
mov ecx, edi
call fcn.0052ef40
mov ecx, dword [ebp - 0x38]
test eax, eax
jne 0x55bc0d
mov eax, dword [ebx + 0x74]
mov eax, dword [eax + ecx*4]
movups xmm0, xmmword [eax + 0x1c]
movups xmmword [ebp - 0x34], xmm0
jmp 0x55bc0d
mov ecx, dword [ebp - 0x38]
mov eax, dword [ebx + 0x74]
xorps xmm0, xmm0
mov esi, dword [eax + ecx*4]
mov eax, dword [ebp - 0x2c]
mov ecx, dword [esi + 0x1c]
sub ecx, dword [ebp - 0x34]
mov edx, dword [esi + 0x20]
add eax, ecx
mov ecx, dword [ebp - 0x4c]
mov dword [esi + 0x4c], eax
mov dword [esi + 0x54], eax
lea eax, [ebp - 0x78]
mov dword [esi + 0x50], edx
mov dword [esi + 0x58], edx
push eax
movlpd qword [ebp - 0x78], xmm0
call fcn.00519740
test eax, eax
mov eax, dword [ebp - 0x78]
je 0x55bc7f
test eax, eax
jle 0x55bc7f
cmp dword [ebp - 0x74], 0
jle 0x55bc7f
mov eax, dword [ebx + 0x74]
mov edx, dword [ebp - 0x38]
mov eax, dword [eax + edx*4]
inc dword [eax + 0x4c]
mov eax, dword [ebx + 0x74]
mov ecx, dword [eax + edx*4]
mov eax, dword [ecx + 0x4c]
add eax, dword [ebp - 0x78]
mov dword [ecx + 0x54], eax
mov eax, dword [ebx + 0x74]
mov ecx, dword [eax + edx*4]
mov eax, dword [ecx + 0x50]
add eax, dword [ebp - 0x74]
mov dword [ecx + 0x58], eax
mov eax, dword [ebp - 0x78]
mov edx, dword [ebp - 0x58]
mov esi, dword [ebp - 0x3c]
inc edx
add edx, eax
inc eax
add dword [esi], eax
jmp 0x55bc93
mov edi, dword [ebp - 0x50]
mov esi, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x7c]
mov eax, dword [ecx]
cmp eax, edx
cmovle eax, edx
mov edx, dword [ebp - 0x38]
mov dword [ecx], eax
mov eax, dword [ebx + 0x74]
mov eax, dword [eax + edx*4]
mov dword [eax + 0x2c], 1
mov ecx, dword [edi + 0x50]
call fcn.00514c40
test eax, eax
jne 0x55bcd2
mov ecx, dword [edi + 0x50]
call fcn.00510c10
add eax, dword [ebp - 0x6c]
add dword [esi], eax
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebp + 0x20]
mov dword [eax], ecx
jmp 0x55bcf0
mov eax, dword [ebp + 0x1c]
mov dword [esi], eax
mov ecx, dword [edi + 0x50]
call fcn.00510c50
mov ecx, dword [ebp - 0x5c]
cmp dword [ebp - 0x40], ecx
cmovg ecx, dword [ebp - 0x40]
add eax, ecx
mov ecx, dword [ebp - 0x48]
add dword [ecx], eax
mov eax, dword [ebx + 0x78]
mov edx, dword [ebp - 0x38]
mov ecx, dword [ebx + 0x74]
inc edx
sub eax, ecx
mov dword [ebp - 0x38], edx
sar eax, 2
cmp edx, eax
jl 0x55b930
mov eax, dword [ebp - 0x54]
xorps xmm0, xmm0
xor esi, esi
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x40], esi
movups xmmword [eax], xmm0
mov ecx, dword [edi + 0x50]
call fcn.00514c40
mov ecx, dword [edi + 0x4c]
test eax, eax
jne 0x55be4a
mov eax, dword [ecx + 0x78]
xor edx, edx
sub eax, dword [ecx + 0x74]
mov dword [ebp - 0x48], edx
test eax, 0xfffffffc
jle 0x55be4a
nop dword [eax + eax]
mov eax, dword [ebx + 0x74]
lea ecx, [edx*4]
push dword [eax + ecx]
mov ecx, edi
call fcn.0052f0e0
test eax, eax
je 0x55be2f
cmp dword [ebp - 0x40], 0
mov eax, dword [edi + 0x4c]
mov ecx, dword [ebp - 0x48]
mov edx, dword [eax + 0x84]
mov eax, dword [ebx + 0x74]
mov ecx, dword [eax + ecx*4]
jne 0x55bdb9
mov dword [ebp - 0x40], 1
test edx, edx
je 0x55bd9e
mov esi, dword [ecx + 0x10]
cmp esi, dword [ecx + 0x20]
cmovge esi, dword [ecx + 0x20]
mov dword [ebp - 0x3c], esi
jmp 0x55bda4
mov eax, dword [ecx + 0x20]
mov dword [ebp - 0x3c], eax
test edx, edx
je 0x55bdb4
mov esi, dword [ecx + 0x18]
cmp esi, dword [ecx + 0x28]
cmovle esi, dword [ecx + 0x28]
jmp 0x55be2f
mov esi, dword [ecx + 0x28]
jmp 0x55be2f
test edx, edx
je 0x55bdd0
mov edi, dword [ecx + 0x20]
mov eax, dword [ecx + 0x10]
cmp eax, edi
mov dword [ebp - 0x44], edi
cmovge eax, edi
mov edi, dword [ebp - 0x50]
jmp 0x55bdd6
mov eax, dword [ecx + 0x20]
mov dword [ebp - 0x44], eax
mov ebx, dword [ebp - 0x64]
cmp dword [ebp - 0x3c], eax
jl 0x55bdff
test edx, edx
je 0x55bdf9
mov eax, dword [ecx + 0x10]
mov edi, eax
cmp edi, dword [ebp - 0x44]
mov dword [ebp - 0x3c], eax
cmovge edi, dword [ebp - 0x44]
mov dword [ebp - 0x3c], edi
mov edi, dword [ebp - 0x50]
jmp 0x55bdff
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x3c], eax
mov eax, dword [ecx + 0x28]
test edx, edx
je 0x55be17
cmp dword [ecx + 0x18], eax
mov ebx, dword [ecx + 0x18]
cmovle ebx, eax
mov dword [ebp - 0x5c], ebx
mov ebx, dword [ebp - 0x64]
jmp 0x55be1a
mov dword [ebp - 0x5c], eax
cmp esi, dword [ebp - 0x5c]
jg 0x55be2f
test edx, edx
je 0x55be2d
mov esi, dword [ecx + 0x18]
cmp esi, eax
cmovle esi, eax
jmp 0x55be2f
mov esi, eax
mov ecx, dword [edi + 0x4c]
mov edx, dword [ebp - 0x48]
inc edx
mov dword [ebp - 0x48], edx
mov eax, dword [ecx + 0x78]
sub eax, dword [ecx + 0x74]
sar eax, 2
cmp edx, eax
jl 0x55bd50
mov eax, dword [ecx + 0x78]
sub eax, dword [ecx + 0x74]
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x38], 0
test eax, 0xfffffffc
jle 0x55c10e
mov eax, dword [sym.imp.USER32.dll_OffsetRect]
mov dword [ebp - 0x48], eax
nop dword [eax + eax]
mov eax, dword [ebp - 0x38]
lea ecx, [eax*4]
mov eax, dword [ebx + 0x74]
mov dword [ebp - 0x58], ecx
push dword [eax + ecx]
mov ecx, edi
call fcn.0052f0e0
test eax, eax
je 0x55c0f2
mov eax, dword [edi + 0x4c]
mov ecx, dword [ebx + 0x74]
mov eax, dword [eax + 0x84]
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x58]
mov edx, dword [ecx + eax]
mov dword [ebp - 0x4c], edx
mov ecx, dword [edx + 0x28]
sub ecx, dword [edx + 0x20]
cmp dword [ebp - 0x5c], 0
mov dword [ebp - 0x40], ecx
je 0x55bed6
mov ecx, dword [edx + 0x18]
sub ecx, dword [edx + 0x10]
cmp ecx, dword [ebp - 0x40]
cmovle ecx, dword [ebp - 0x40]
cmp dword [ebp - 0x5c], 0
mov dword [ebp - 0x40], ecx
je 0x55befd
mov eax, dword [edx + 0x10]
inc ecx
sub eax, dword [edx + 0x18]
add eax, ecx
cdq
sub eax, edx
sar eax, 1
push eax
mov eax, dword [ebp - 0x4c]
push 0
add eax, 0xc
push eax
call dword [ebp - 0x48]
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebx + 0x74]
mov edx, dword [ebp - 0x40]
inc edx
mov ecx, dword [ecx + eax]
mov eax, dword [ecx + 0x20]
sub eax, dword [ecx + 0x28]
add eax, edx
cdq
sub eax, edx
sar eax, 1
push eax
push 0
lea eax, [ecx + 0x1c]
push eax
call dword [ebp - 0x48]
mov ecx, dword [edi + 0x50]
call fcn.00514c40
test eax, eax
jne 0x55bf8a
mov eax, dword [edi + 0x4c]
cmp dword [eax + 0x84], 0
je 0x55bf4e
mov eax, dword [ebx + 0x74]
mov ecx, dword [ebp - 0x38]
mov ecx, dword [eax + ecx*4]
mov eax, esi
sub eax, dword [ecx + 0x18]
push eax
push 0
lea eax, [ecx + 0xc]
push eax
call dword [ebp - 0x48]
mov ecx, dword [ebp - 0x38]
mov eax, dword [ebx + 0x74]
mov edx, dword [eax + ecx*4]
test byte [edx], 8
lea ecx, [edx + 0x1c]
mov dword [ebp - 0x4c], ecx
je 0x55bf7e
mov ecx, dword [edx + 0x20]
mov eax, ecx
sub eax, dword [edx + 0x28]
add eax, esi
add eax, dword [ebp - 0x3c]
cdq
sub eax, edx
sar eax, 1
sub eax, ecx
push eax
push 0
push dword [ebp - 0x4c]
jmp 0x55bf87
mov eax, esi
sub eax, dword [edx + 0x28]
push eax
push 0
push ecx
call dword [ebp - 0x48]
cmp dword [ebp - 0x70], 0
mov eax, dword [edi + 0x4c]
mov ecx, dword [ebp - 0x58]
mov edx, dword [eax + 0x84]
mov eax, dword [ebx + 0x74]
mov dword [ebp - 0x4c], edx
mov eax, dword [ecx + eax]
mov dword [ebp - 0x40], eax
jne 0x55bff2
mov dword [ebp - 0x70], 1
test edx, edx
je 0x55bfc0
mov edx, dword [eax + 0x10]
mov eax, dword [eax + 0x20]
cmp edx, eax
cmovge edx, eax
jmp 0x55bfc3
mov edx, dword [eax + 0x20]
mov eax, dword [ebp - 0x54]
mov dword [eax + 4], edx
mov eax, dword [ebx + 0x74]
mov edx, dword [ecx + eax]
mov eax, dword [edi + 0x4c]
cmp dword [eax + 0x84], 0
je 0x55bfea
mov ecx, dword [edx + 0x18]
cmp ecx, dword [edx + 0x28]
cmovle ecx, dword [edx + 0x28]
jmp 0x55c079
mov ecx, dword [edx + 0x28]
jmp 0x55c079
test edx, edx
mov edx, dword [eax + 0x20]
je 0x55c006
mov eax, dword [eax + 0x10]
cmp eax, edx
cmovge eax, edx
mov dword [ebp - 0x44], eax
jmp 0x55c009
mov dword [ebp - 0x44], edx
mov eax, dword [ebp - 0x54]
mov eax, dword [eax + 4]
cmp eax, dword [ebp - 0x44]
jl 0x55c029
cmp dword [ebp - 0x4c], 0
je 0x55c027
mov eax, dword [ebp - 0x40]
mov eax, dword [eax + 0x10]
cmp eax, edx
cmovge eax, edx
jmp 0x55c029
mov eax, edx
mov edx, dword [ebp - 0x54]
mov dword [edx + 4], eax
mov eax, dword [edi + 0x4c]
mov edx, dword [eax + 0x84]
mov eax, dword [ebx + 0x74]
mov dword [ebp - 0x4c], edx
mov eax, dword [ecx + eax]
mov dword [ebp - 0x40], eax
test edx, edx
je 0x55c055
mov edx, dword [eax + 0x18]
mov eax, dword [eax + 0x28]
cmp edx, eax
cmovle edx, eax
jmp 0x55c05a
mov eax, dword [eax + 0x28]
mov edx, eax
mov ecx, dword [ebp - 0x54]
mov ecx, dword [ecx + 0xc]
cmp ecx, edx
jg 0x55c079
cmp dword [ebp - 0x4c], 0
je 0x55c077
mov ecx, dword [ebp - 0x40]
mov ecx, dword [ecx + 0x18]
cmp ecx, eax
cmovle ecx, eax
jmp 0x55c079
mov ecx, eax
mov eax, dword [ebp - 0x54]
mov dword [eax + 0xc], ecx
mov ecx, dword [edi + 0x50]
call fcn.00514c40
test eax, eax
jne 0x55c2e7
mov eax, dword [ebx + 0x74]
mov ecx, edi
add eax, dword [ebp - 0x58]
push dword [eax]
call fcn.0052f0e0
test eax, eax
je 0x55c0f2
cmp dword [ebp - 0x60], 0
mov eax, dword [edi + 0x4c]
mov ecx, dword [ebp - 0x58]
mov edx, dword [eax + 0x84]
mov eax, dword [ebx + 0x74]
mov dword [ebp - 0x4c], edx
mov eax, dword [ecx + eax]
jne 0x55c285
mov dword [ebp - 0x60], 1
test edx, edx
je 0x55c0d1
mov eax, dword [eax + 0xc]
jmp 0x55c0d4
mov eax, dword [eax + 0x1c]
mov edx, dword [ebp - 0x54]
mov dword [edx], eax
mov eax, dword [ebx + 0x74]
mov eax, dword [ecx + eax]
test dword [eax], 0x3442100
je 0x55c0ec
mov eax, dword [eax + 0x54]
jmp 0x55c0ef
mov eax, dword [eax + 0x24]
mov dword [edx + 8], eax
mov ecx, dword [ebp - 0x38]
inc ecx
mov dword [ebp - 0x38], ecx
mov ecx, dword [edi + 0x4c]
mov eax, dword [ecx + 0x78]
sub eax, dword [ecx + 0x74]
sar eax, 2
cmp dword [ebp - 0x38], eax
jl 0x55be80
mov ecx, dword [edi + 0x50]
call fcn.00514c40
cmp eax, 1
jne 0x55c272
lea ecx, [ebp - 0x78]
xorps xmm0, xmm0
push ecx
lea ecx, [edi + 0x68]
movlpd qword [ebp - 0x78], xmm0
call fcn.00519740
test eax, eax
je 0x55c272
cmp dword [ebp - 0x78], 0
jle 0x55c272
cmp dword [ebp - 0x74], 0
jle 0x55c272
mov eax, dword [ebx + 0x78]
xor esi, esi
mov ecx, dword [ebx + 0x74]
sub eax, ecx
mov dword [ebp - 0x44], esi
test eax, 0xfffffffc
jle 0x55c272
nop word [eax + eax]
mov eax, dword [ecx + esi*4]
test eax, eax
je 0x55c25b
test dword [eax], 0x800
je 0x55c25b
movups xmm0, xmmword [eax + 0x1c]
mov ecx, dword [edi + 0x50]
movups xmmword [ebp - 0x34], xmm0
movups xmmword [ebp - 0x24], xmm0
xorps xmm0, xmm0
movups xmmword [ebp - 0x14], xmm0
call fcn.00510c50
movups xmm1, xmmword [ebp - 0x34]
push 0
push dword [ebp - 0x74]
movaps xmm0, xmm1
psrldq xmm1, 4
psrldq xmm0, 0xc
movd ecx, xmm0
movd edx, xmm1
mov dword [ebp - 0x7c], ecx
sub ecx, edx
mov dword [ebp - 0x60], edx
add ecx, eax
mov eax, dword [ebp - 0x78]
push eax
push ecx
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.00518df0
add esp, 0x18
test eax, eax
je 0x55c25b
mov esi, dword [ebp - 0x1c]
mov ebx, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
sub ecx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x50]
lea eax, [esi + 0xa]
mov dword [ebp - 0x4c], eax
add esi, 0xa
mov eax, dword [ebp - 0x10]
add esi, ecx
sub eax, ebx
mov ecx, esi
add eax, dword [ebp - 0x7c]
add eax, dword [ebp - 0x60]
sub ebx, dword [ebp - 0x10]
add ebx, dword [ebp - 0x7c]
add ebx, dword [ebp - 0x60]
cdq
sub eax, edx
sar eax, 1
mov dword [ebp - 0x70], eax
mov eax, ebx
mov ebx, dword [ebp - 0x4c]
cdq
sub eax, edx
mov edx, eax
sar edx, 1
sub ecx, ebx
je 0x55c255
mov eax, dword [ebp - 0x70]
mov ecx, edx
sub ecx, eax
je 0x55c255
push edx
push esi
push eax
push ebx
lea ecx, [edi + 0x68]
mov dword [edi + 0x98], 1
call fcn.0051a6a0
mov ecx, dword [ebp - 0x54]
mov eax, dword [ecx + 8]
cmp eax, esi
cmovle eax, esi
mov dword [ecx + 8], eax
mov ebx, dword [ebp - 0x64]
mov esi, dword [ebp - 0x44]
mov eax, dword [ebx + 0x78]
inc esi
mov ecx, dword [ebx + 0x74]
sub eax, ecx
sar eax, 2
mov dword [ebp - 0x44], esi
cmp esi, eax
jl 0x55c170
pop ebx
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop esi
call fcn.0050ed5c
mov esp, ebp
pop ebp
ret 0x24
test edx, edx
je 0x55c28e
mov edx, dword [eax + 0xc]
jmp 0x55c291
mov edx, dword [eax + 0x1c]
mov dword [ebp - 0x40], edx
mov edx, dword [ebp - 0x54]
mov edx, dword [edx]
cmp edx, dword [ebp - 0x40]
jl 0x55c2ac
cmp dword [ebp - 0x4c], 0
je 0x55c2a9
mov edx, dword [eax + 0xc]
jmp 0x55c2ac
mov edx, dword [eax + 0x1c]
mov eax, dword [ebp - 0x54]
mov dword [eax], edx
mov eax, dword [ebx + 0x74]
mov edx, dword [ebp - 0x54]
mov eax, dword [ecx + eax]
mov ecx, dword [edx + 8]
test dword [eax], 0x3442100
je 0x55c2d5
mov eax, dword [eax + 0x54]
cmp ecx, eax
cmovle ecx, eax
mov dword [edx + 8], ecx
jmp 0x55c0f2
mov eax, dword [eax + 0x24]
cmp ecx, eax
cmovg eax, ecx
mov ecx, eax
mov dword [edx + 8], ecx
jmp 0x55c0f2
mov ecx, dword [ebp - 0x38]
test ecx, ecx
jne 0x55c0f5
mov edx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x7c]
mov dword [edx], ecx
mov eax, dword [eax]
mov dword [edx + 8], eax
jmp 0x55c0f5