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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x3b0
mov esi, esp
mov dword [esi + 0x398], ebp
call 0x53c18c
pop eax
mov dword [esi + 0x39c], esp
mov dword [esi + 0x3a8], 0xffffffff
mov dword [esi + 0x3a4], 0x704620
mov ebx, dword [ebp + 8]
mov dword [esi + 0x1e0], ecx
mov edi, edx
lea ecx, [esi + 0x288]
mov dword [esi + 0x78], eax
mov eax, dword fs:[0]
mov dword [esi + 0x3a0], eax
lea eax, [esi + 0x3a0]
mov dword fs:[0], eax
movsd xmm0, qword [edx + 0x20]
movzx eax, word [edx + 0x168]
movsd xmm1, qword [edx + 8]
movsd qword [esi + 0x100], xmm0
movsd xmm0, qword [edx + 0x18]
mov word [esi + 0x160], ax
mov word [esi + 0x86], ax
mov eax, dword [edx + 0x138]
movsd qword [esi + 0xe8], xmm1
movsd qword [esi + 0xf8], xmm0
movsd xmm0, qword [edx + 0x10]
mov dword [esi + 0x134], eax
mov eax, dword [edx + 0x13c]
movsd qword [esi + 0xf0], xmm0
movsd xmm0, qword [edx]
mov dword [esi + 0x130], eax
movzx eax, word [edx + 0x16a]
movsd qword [esi + 0xe0], xmm0
movsd xmm0, qword [edx + 0x148]
mov word [esi + 0x1c0], ax
movzx eax, byte [edx + 0x16f]
movaps xmmword [esi + 0x1f0], xmm0
movss xmm0, dword [edx + 0x150]
mov dword [esi + 0x1c], eax
lea eax, [edx + 0x28]
movaps xmmword [esi + 0x150], xmm0
movss xmm0, dword [edx + 0x154]
movaps xmmword [esi + 0x1a0], xmm0
movsd xmm0, qword [edx + 0x140]
movaps xmm1, xmm0
movaps xmmword [esi + 0x1d0], xmm0
movss dword [esi + 0x148], xmm0
shufps xmm1, xmm0, 0x55
movaps xmmword [esi + 0x120], xmm1
movss dword [esi + 0x194], xmm1
push 0x110
push eax
push ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
movsd xmm0, qword [esi + 0x310]
movsd xmm1, qword [esi + 0x318]
movzx eax, byte [edi + 0x16e]
movzx edx, word [edi + 0x16c]
lea ecx, [ebx + 0xe0]
mov dword [esi + 0x17c], edi
mov dword [esi + 8], 0
mov dword [esi + 0x70], ecx
subps xmm1, xmm0
mov byte [esi + 0x17], al
mov word [esi + 0x14e], dx
movaps xmmword [esi + 0x110], xmm1
nop dword [eax]
mov edi, dword [esi + 8]
cmp edi, 2
jae 0x53c6b9
cmp byte [esi + edi + 0x86], 0
lea eax, [edi + 1]
mov dword [esi + 8], eax
je 0x53c310
mov edx, dword [esi + 0x368]
xor eax, eax
mov ecx, 8
mov dword [esi + 0x10], edx
lea ebx, [edx + 8]
lock cmpxchg dword [edx + 8], ecx
mov dword [esi + 0xc], edi
je 0x53c363
mov ecx, ebx
mov dword [esi + 0x3a8], 0
mov dword [esi + 0x18], ebx
call fcn.007188f0
mov ebx, dword [esi + 0x18]
mov edi, dword [esi + 0xc]
mov edx, dword [esi + 0x10]
mov eax, edi
shl eax, 4
movzx ecx, byte [edx + eax + 0x3c8]
movss xmm0, dword [edx + eax + 0x3c0]
movss xmm7, dword [edx + eax + 0x3c4]
mov byte [esi + 0x18], cl
movzx ecx, byte [edx + eax + 0x3cc]
mov byte [edx + eax + 0x3c8], 2
movaps xmmword [esi + 0x1b0], xmm0
mov eax, 8
mov dword [esi + 0x74], ecx
xor ecx, ecx
lock cmpxchg dword [edx + 8], ecx
je 0x53c3ce
mov ecx, ebx
mov dword [esi + 0x3a8], 0
movss dword [esi + 0x10], xmm7
call fcn.00719150
movss xmm7, dword [esi + 0x10]
mov edi, dword [esi + 0xc]
cmp byte [esi + 0x18], 2
je 0x53c310
movss xmm4, dword [esi + 0x310]
movss xmm6, dword [esi + 0x314]
test edi, edi
mov dword [esi + 0x28], edi
je 0x53c438
cmp edi, 1
jne 0x53e0b8
mov eax, dword [ebp + 8]
movss xmm3, dword [esi + 0x364]
movss xmm2, dword [esi + 0x35c]
xorps xmm5, xmm5
movaps xmm4, xmm6
mov eax, dword [eax + 0x100]
movaps xmm1, xmm3
subss xmm1, xmm2
addss xmm1, xmm6
add eax, 0x40
movss xmm0, dword [eax]
mov eax, dword [esi + 0x74]
mov eax, dword [eax*4 + 0x53e7a0]
add eax, dword [esi + 0x78]
jmp eax
mov eax, dword [ebp + 8]
movss xmm3, dword [esi + 0x360]
movss xmm2, dword [esi + 0x358]
xorps xmm5, xmm5
mov eax, dword [eax + 0x100]
movaps xmm1, xmm3
subss xmm1, xmm2
addss xmm1, xmm4
add eax, 0x3c
movss xmm0, dword [eax]
mov eax, dword [esi + 0x74]
mov eax, dword [eax*4 + 0x53e7a0]
add eax, dword [esi + 0x78]
jmp eax
movzx eax, word [esi + 0x160]
movaps xmm0, xmmword [esi + 0x1f0]
movaps xmm1, xmmword [esi + 0x150]
subss xmm1, xmm0
shufps xmm0, xmm0, 0x55
test al, al
movaps xmmword [esi + 0x150], xmm1
movaps xmmword [esi + 0x230], xmm0
je 0x53c715
movzx edx, word [esi + 0x1c0]
movaps xmm0, xmmword [esi + 0x110]
movaps xmm4, xmmword [esi + 0x1a0]
test dl, dl
je 0x53c76c
movaps xmm0, xmmword [esi + 0x110]
movaps xmm2, xmmword [esi + 0x150]
minss xmm0, xmm2
jmp 0x53c749
movzx edx, word [esi + 0x1c0]
movaps xmm0, xmmword [esi + 0x110]
movaps xmm4, xmmword [esi + 0x1a0]
test dl, dl
je 0x53c737
movaps xmmword [esi + 0x150], xmm0
jmp 0x53c76c
movaps xmm0, xmmword [esi + 0x110]
movaps xmm2, xmmword [esi + 0x150]
maxss xmm0, xmm2
cmpunordss xmm2, xmm2
movaps xmm1, xmm2
andnps xmm2, xmm0
movaps xmm0, xmmword [esi + 0x110]
andps xmm1, xmmword [esi + 0x110]
orps xmm2, xmm1
movaps xmmword [esi + 0x150], xmm2
mov ecx, dword [esi + 0x1c]
subss xmm4, dword [esi + 0x230]
movaps xmm1, xmm0
movzx eax, ax
cmp eax, 0x100
shufps xmm1, xmm0, 0x55
movzx eax, dx
jae 0x53c79b
cmp eax, 0xff
ja 0x53c7a7
movaps xmm0, xmm1
maxss xmm0, xmm4
jmp 0x53c7b6
cmp eax, 0x100
jae 0x53c7af
movaps xmm3, xmm1
jmp 0x53c7d1
movaps xmm4, xmm1
movaps xmm3, xmm1
jmp 0x53c7d1
movaps xmm0, xmm1
minss xmm0, xmm4
cmpunordss xmm4, xmm4
movaps xmm3, xmm1
movaps xmm1, xmm4
andnps xmm4, xmm0
movaps xmm0, xmmword [esi + 0x110]
andps xmm1, xmm3
orps xmm4, xmm1
movaps xmm2, xmmword [esi + 0x150]
movaps xmm1, xmmword [esi + 0x1f0]
movaps xmmword [esi + 0x210], xmm3
unpcklps xmm2, xmm4
addps xmm2, xmm1
movaps xmmword [esi + 0x150], xmm2
subps xmm2, xmm1
movaps xmm4, xmm2
ucomiss xmm0, xmm2
subps xmm0, xmm2
movaps xmmword [esi + 0x250], xmm2
shufps xmm4, xmm2, 0x55
seta byte [esi + 0x27]
movaps xmmword [esi + 0x200], xmm0
shufps xmm0, xmm0, 0x55
ucomiss xmm3, xmm4
movaps xmmword [esi + 0x260], xmm4
movaps xmm4, xmmword [esi + 0x1d0]
movaps xmmword [esi + 0x1a0], xmm0
seta byte [esi + 0x26]
cmp byte [esi + 0x17], 0
addps xmm4, xmm2
addps xmm4, xmm1
movaps xmmword [esi + 0x220], xmm4
je 0x53cb2c
mov ebx, dword [ebp + 8]
movaps xmm2, xmmword [esi + 0x1f0]
movaps xmm3, xmmword [esi + 0x220]
mov dword [esi + 0x3a8], 0
movsd xmm0, qword [ebx + 0xd0]
movaps xmm1, xmm2
mov eax, dword [ebx + 0xc4]
mov edx, dword [ebx + 0xc0]
mov edi, dword [ebx + 0xc8]
mov ecx, dword [ebx + 0xe0]
maxps xmm1, xmm0
cmpunordps xmm0, xmm0
andps xmm2, xmm0
andnps xmm0, xmm1
movaps xmm1, xmm3
orps xmm0, xmm2
movlps qword [esi + 0x88], xmm0
movsd xmm0, qword [ebx + 0xd8]
lea ebx, [esi + 0x88]
minps xmm1, xmm0
cmpunordps xmm0, xmm0
andps xmm3, xmm0
andnps xmm0, xmm1
orps xmm0, xmm3
movlps qword [esi + 0x90], xmm0
push ebx
push edi
push eax
call fcn.0051b510
add esp, 0xc
mov ecx, dword [esi + 0x1c]
test al, al
je 0x53cb2c
xor eax, eax
jmp 0x53c8fe
mov ecx, dword [esi + 0x1c]
mov eax, dword [esi + 0xc]
mov byte [esi + edx + 0x104], 0
cmp eax, 1
ja 0x53cb2c
mov edx, eax
inc eax
cmp byte [esi + edx + 0x86], 0
je 0x53c8fe
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0x70]
mov edi, dword [eax]
mov eax, dword [edi + 8]
lea ecx, [edi + 8]
mov dword [esi + 8], edx
test al, 8
jne 0x53c940
mov ebx, eax
add ebx, 0x10
jb 0x53c940
lock cmpxchg dword [ecx], ebx
je 0x53c95e
nop word cs:[eax + eax]
mov dword [esi + 0x3a8], 0
mov dword [esi + 0x10], ecx
mov dword [esi + 0x18], edi
call fcn.00719890
mov edi, dword [esi + 0x18]
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 8]
mov eax, 0xfffffff0
movss xmm3, dword [edi + 0x440]
movss xmm4, dword [edi + 0x444]
lock xadd dword [edi + 8], eax
and eax, 0xfffffff2
cmp eax, 0x12
jne 0x53c9a6
mov dword [esi + 0x3a8], 0
movss dword [esi + 0x10], xmm3
movss dword [esi + 0x18], xmm4
call fcn.00719c10
movss xmm4, dword [esi + 0x18]
movss xmm3, dword [esi + 0x10]
mov edx, dword [esi + 8]
test edx, edx
lea eax, [esi + 0xf0]
mov dword [esi + 0x28], edx
je 0x53c9c2
cmp edx, 1
jne 0x53e208
lea eax, [esi + 0xf4]
movss xmm0, dword [eax]
xorps xmm1, xmm1
ucomiss xmm0, xmm1
jbe 0x53ca40
movaps xmm1, xmmword [esi + 0x1a0]
test edx, edx
movaps xmm0, xmm3
mov dword [esi + 0x28], edx
je 0x53c9eb
cmp edx, 1
movaps xmm0, xmm4
jne 0x53e4f3
xorps xmm2, xmm2
ucomiss xmm0, xmm2
seta al
cmp edx, 1
mov dword [esi + 0x28], edx
jne 0x53ca51
lea ecx, [esi + 0xf4]
movaps xmm0, xmm1
ucomiss xmm0, dword [ecx]
jbe 0x53ca6b
test edx, edx
movaps xmm0, xmm3
mov dword [esi + 0x28], edx
je 0x53ca20
cmp edx, 1
movaps xmm0, xmm4
jne 0x53e3d9
xorps xmm1, xmm1
ucomiss xmm1, xmm0
seta cl
or al, cl
mov ecx, dword [esi + 0x1c]
mov eax, dword [esi + 0xc]
je 0x53c8fe
jmp 0x53ca7b
movaps xmm1, xmmword [esi + 0x1a0]
xor eax, eax
cmp edx, 1
mov dword [esi + 0x28], edx
je 0x53c9fc
movaps xmm0, xmmword [esi + 0x200]
test edx, edx
jne 0x53e265
lea ecx, [esi + 0xf0]
ucomiss xmm0, dword [ecx]
ja 0x53ca0a
xor ecx, ecx
or al, cl
mov ecx, dword [esi + 0x1c]
mov eax, dword [esi + 0xc]
je 0x53c8fe
cmp edx, 1
mov dword [esi + 0x28], edx
je 0x53ca93
test edx, edx
jne 0x53e436
lea eax, [esi + 0xf0]
jmp 0x53ca9c
movaps xmm3, xmm4
lea eax, [esi + 0xf4]
movss xmm0, dword [eax]
mov ecx, 8
subss xmm0, xmm3
movss dword [eax], xmm0
mov eax, dword [esi + 0x70]
mov ebx, dword [eax]
xor eax, eax
lock cmpxchg dword [ebx + 8], ecx
lea edi, [ebx + 8]
je 0x53cade
mov ecx, edi
mov dword [esi + 0x3a8], 0
mov dword [esi + 0x10], edi
mov dword [esi + 0x18], ebx
call fcn.007188f0
mov ebx, dword [esi + 0x18]
mov edi, dword [esi + 0x10]
mov edx, dword [esi + 8]
test edx, edx
mov dword [esi + 0x28], edx
je 0x53caf6
cmp edx, 1
jne 0x53e493
add ebx, 0x444
jmp 0x53cafc
add ebx, 0x440
mov dword [ebx], 0
mov eax, 8
xor ecx, ecx
lock cmpxchg dword [edi], ecx
je 0x53c8f0
mov ecx, edi
mov dword [esi + 0x3a8], 0
call fcn.00719150
mov edx, dword [esi + 8]
jmp 0x53c8f0
test ecx, ecx
je 0x53cb59
cmp ecx, 1
movzx eax, byte [esi + 0x27]
mov dword [esi + 0x80], eax
movzx eax, byte [esi + 0x26]
mov dword [esi + 0x7c], eax
je 0x53cb66
mov dword [esi + 0x80], 0
mov dword [esi + 0x7c], 0
jmp 0x53cb66
mov al, 1
mov dword [esi + 0x80], eax
mov al, 1
mov dword [esi + 0x7c], eax
mov eax, dword [ebp + 8]
xorps xmm1, xmm1
ucomiss xmm1, dword [esi + 0x120]
mov eax, dword [eax + 0x100]
movss xmm0, dword [eax + 0xa0]
addss xmm0, dword [eax + 0x98]
addss xmm0, dword [eax + 0xa4]
movss dword [esi + 0x138], xmm0
jb 0x53cd27
cmp byte [esi + 0x80], 0
je 0x53cd27
mov edi, dword [esi + 0x134]
mov ecx, 0x2df45158
mov dword [esi + 0x3a8], 0
xor edi, 0x38d01376
mov eax, edi
mul ecx
mov ecx, dword [esi + 0x130]
mov dword [esi + 8], eax
imul eax, edi, 0x2d7f954c
bswap edi
add eax, edx
imul edi, edi, 0xb36a80d2
xor ecx, 0x452821e6
imul edx, ecx, 0x2df45158
bswap ecx
add edx, eax
mov eax, ecx
mov dword [esi + 0xc], edx
mov edx, 0xb36a80d2
mul edx
mov ebx, eax
imul eax, ecx, 0xa7ae0bd2
mov ecx, 0x4c957f2d
add eax, edx
bswap ebx
add edi, eax
xor ebx, dword [esi + 0xc]
bswap edi
xor edi, dword [esi + 8]
mov eax, edi
imul edi, edi, 0x5851f42d
mul ecx
mov ecx, eax
add edi, edx
imul eax, ebx, 0x4c957f2d
mov edx, 0x2df45158
add eax, edi
add ecx, 0x817e8b9b
adc eax, 0x16a65afc
xor ecx, 0xecec4feb
xor eax, 0xe7d616b
mov ebx, eax
shld ebx, ecx, 0x17
shld ecx, eax, 0x17
xor ecx, 0xff
mov eax, ecx
mul edx
mov dword [esi + 8], eax
imul eax, ecx, 0x2d7f954c
bswap ecx
add eax, edx
imul edx, ebx, 0x2df45158
bswap ebx
imul ecx, ecx, 0xb36a80d2
add edx, eax
mov eax, ebx
mov dword [esi + 0xc], edx
mov edx, 0xb36a80d2
mul edx
mov edi, eax
imul eax, ebx, 0xa7ae0bd2
add eax, edx
bswap edi
mov edx, 0xcf6654be
add ecx, eax
xor edi, dword [esi + 0xc]
bswap ecx
xor ecx, dword [esi + 8]
imul ebx, edi, 0xcf6654be
bswap edi
mov eax, ecx
mov dword [esi + 8], ecx
mul edx
mov dword [esi + 0xc], eax
imul eax, ecx, 0x6e0ce934
add eax, edx
mov edx, 0xcb16f391
add ebx, eax
mov eax, edi
mul edx
mov ecx, edx
imul edx, edi, 0x41ab9930
bswap eax
add edx, ecx
mov ecx, dword [esi + 8]
xor eax, ebx
mov ebx, eax
bswap ecx
imul edi, ecx, 0xcb16f391
mov ecx, dword [esi + 8]
add edi, edx
bswap edi
xor edi, dword [esi + 0xc]
test cl, 0x20
cmovne ebx, edi
cmovne edi, eax
mov edx, edi
shld edx, ebx, cl
shld ebx, edi, cl
mov ecx, dword [esi + 0x70]
push 1
push ebx
call fcn.0051cb20
add esp, 8
movss xmm1, dword [esi + 0x138]
mulss xmm0, xmm1
movss dword [esi + 0x194], xmm0
movaps xmm0, xmm1
xorps xmm1, xmm1
mov ecx, dword [esi + 0x134]
mov edi, dword [esi + 0x130]
mov edx, 0x2df45158
mov ebx, dword [ebp + 8]
xor ecx, 0x38d01376
xor edi, 0x452821e6
mov eax, ecx
mul edx
mov dword [esi + 0x188], eax
imul eax, ecx, 0x2d7f954c
bswap ecx
add eax, edx
imul edx, edi, 0x2df45158
bswap edi
imul ecx, ecx, 0xb36a80d2
add edx, eax
mov eax, edi
imul edi, edi, 0xa7ae0bd2
mov dword [esi + 0x184], edx
mov edx, 0xb36a80d2
mul edx
mov dword [esi + 0x108], eax
add edi, edx
mov edx, dword [esi + 0x108]
add ecx, edi
ucomiss xmm1, dword [esi + 0x1d0]
bswap ecx
mov dword [esi + 0x180], ecx
bswap edx
mov dword [esi + 0x108], edx
jb 0x53ceea
cmp byte [esi + 0x7c], 0
je 0x53ceea
mov edi, dword [esi + 0x180]
mov ebx, dword [esi + 0x108]
mov ecx, 0x4c957f2d
mov dword [esi + 0x3a8], 0
xor edi, dword [esi + 0x188]
xor ebx, dword [esi + 0x184]
mov eax, edi
imul edi, edi, 0x5851f42d
mul ecx
mov ecx, eax
add edi, edx
imul eax, ebx, 0x4c957f2d
mov edx, 0x2df45158
add eax, edi
add ecx, 0x817e8b9b
adc eax, 0x16a65afc
xor ecx, 0x2ffe9f38
xor eax, 0x640722b9
mov ebx, eax
shld ebx, ecx, 0x17
shld ecx, eax, 0x17
xor ecx, 0xff
mov eax, ecx
mul edx
mov dword [esi + 8], eax
imul eax, ecx, 0x2d7f954c
bswap ecx
add eax, edx
imul edx, ebx, 0x2df45158
bswap ebx
imul ecx, ecx, 0xb36a80d2
add edx, eax
mov eax, ebx
mov dword [esi + 0xc], edx
mov edx, 0xb36a80d2
mul edx
mov edi, eax
imul eax, ebx, 0xa7ae0bd2
add eax, edx
bswap edi
mov edx, 0xcf6654be
add ecx, eax
xor edi, dword [esi + 0xc]
bswap ecx
xor ecx, dword [esi + 8]
imul ebx, edi, 0xcf6654be
bswap edi
mov eax, ecx
mov dword [esi + 8], ecx
mul edx
mov dword [esi + 0xc], eax
imul eax, ecx, 0x6e0ce934
add eax, edx
mov edx, 0xcb16f391
add ebx, eax
mov eax, edi
mul edx
mov ecx, edx
imul edx, edi, 0x41ab9930
bswap eax
add edx, ecx
mov ecx, dword [esi + 8]
xor eax, ebx
mov ebx, eax
bswap ecx
imul edi, ecx, 0xcb16f391
mov ecx, dword [esi + 8]
add edi, edx
bswap edi
xor edi, dword [esi + 0xc]
test cl, 0x20
cmovne ebx, edi
cmovne edi, eax
mov edx, edi
shld edx, ebx, cl
shld ebx, edi, cl
mov ecx, dword [esi + 0x70]
push 1
push ebx
call fcn.0051cb20
mov ebx, dword [ebp + 8]
add esp, 8
movss xmm1, dword [esi + 0x138]
mulss xmm0, xmm1
movss dword [esi + 0x148], xmm0
movaps xmm0, xmm1
movaps xmm1, xmmword [esi + 0x150]
lea eax, [ebx + 0xc0]
lea edx, [esi + 0x148]
xor ecx, ecx
mov dword [esi + 0x140], eax
lea eax, [ebx + 0xd0]
mov dword [esi + 0x1e4], eax
shufps xmm1, xmm1, 0x55
movaps xmmword [esi + 0x240], xmm1
movaps xmm1, xmmword [esi + 0x220]
shufps xmm1, xmm1, 0x55
movaps xmmword [esi + 0x270], xmm1
xorps xmm1, xmm1
jmp 0x53cf51
movss xmm0, dword [esi + 0x138]
xorps xmm1, xmm1
lea edx, [esi + 0x148]
cmp ecx, 2
jae 0x53daea
mov eax, 1
mov edi, ecx
sub eax, ecx
mov ecx, edx
mov dword [esi + 0x28], eax
je 0x53cf79
cmp eax, 1
jne 0x53df56
lea ecx, [esi + 0x194]
movss xmm6, dword [ecx]
lea ebx, [edi + 1]
mov ecx, ebx
divss xmm6, xmm0
ucomiss xmm6, xmm1
jne 0x53cf8d
jnp 0x53cf51
mov edx, dword [ebp + 8]
mov dword [esi + 0x1c], edi
cmp eax, 1
mov edi, dword [edx + 0x100]
movss xmm0, dword [edi + 0xa4]
movss xmm1, dword [edi + 0xa0]
mov dword [esi + 0x28], eax
mulss xmm0, xmm6
je 0x53cff7
mov ebx, dword [esi + 0x1c]
test eax, eax
jne 0x53e010
movaps xmm2, xmmword [esi + 0x150]
movaps xmm5, xmmword [esi + 0x220]
movaps xmm4, xmmword [esi + 0x1a0]
test ebx, ebx
mov dword [esi + 0x28], ebx
mov dword [esi + 0x78], ecx
jne 0x53d019
movaps xmm3, xmmword [esi + 0x1f0]
lea ecx, [esi + 0x40]
movss dword [esi + 8], xmm3
movaps xmm3, xmmword [esi + 0x150]
jmp 0x53d03b
movaps xmm2, xmmword [esi + 0x240]
movaps xmm5, xmmword [esi + 0x270]
movaps xmm4, xmmword [esi + 0x1a0]
mov ebx, dword [esi + 0x1c]
test ebx, ebx
mov dword [esi + 0x28], ebx
mov dword [esi + 0x78], ecx
je 0x53cfdf
cmp ebx, 1
jne 0x53dfb3
movaps xmm3, xmmword [esi + 0x230]
lea ecx, [esi + 0x88]
movss dword [esi + 8], xmm3
movaps xmm3, xmmword [esi + 0x240]
movss dword [esi + 0xc], xmm3
mulss xmm6, xmm1
movss xmm1, dword [edx + 0xd8]
subss xmm5, xmm0
movaps xmm3, xmm0
addss xmm6, xmm2
movss xmm2, dword [edx + 0xdc]
addss xmm3, xmm5
movss dword [esi + 0x88], xmm1
movss dword [esi + 0x40], xmm2
ucomiss xmm3, dword [ecx]
jbe 0x53d09a
test eax, eax
mov dword [esi + 0x28], eax
je 0x53d088
cmp eax, 1
jne 0x53e2c2
movaps xmm1, xmm2
subss xmm1, xmm0
subss xmm5, xmm6
movaps xmm6, xmm1
subss xmm6, xmm5
movaps xmm5, xmm1
movaps xmm0, xmmword [esi + 0x1f0]
test ebx, ebx
movss dword [esi + 0x1b0], xmm6
movss dword [esi + 0x74], xmm5
movss dword [esi + 0x10], xmm0
movaps xmm0, xmmword [esi + 0x150]
movss dword [esi + 0x18], xmm0
je 0x53d0e8
movaps xmm0, xmmword [esi + 0x230]
movss dword [esi + 0x10], xmm6
movss dword [esi + 0x18], xmm5
movss dword [esi + 0x1b0], xmm0
movaps xmm0, xmmword [esi + 0x240]
movss dword [esi + 0x74], xmm0
cmp byte [esi + ebx + 0x14e], 0
je 0x53d130
cmp byte [esi + ebx + 0x104], 0
je 0x53d130
cmp ebx, 1
mov dword [esi + 0x28], ebx
je 0x53d11f
test ebx, ebx
jne 0x53e37c
movaps xmm0, xmmword [esi + 0x200]
lea eax, [esi + 0xf0]
movss dword [eax], xmm0
jmp 0x53d130
lea eax, [esi + 0xf4]
movss dword [eax], xmm4
nop dword [eax]
test ebx, ebx
movaps xmmword [esi + 0x1c0], xmm6
movaps xmmword [esi + 0x1d0], xmm5
mov dword [esi + 0x160], edi
je 0x53d1fd
movss xmm0, dword [esi + 0xf4]
movss dword [esi + 0x120], xmm0
sub esp, 8
movss xmm1, dword [esi + 0xc]
movaps xmm2, xmmword [esi + 0x210]
movss dword [esp + 4], xmm1
movss xmm1, dword [esi + 8]
movss dword [esp], xmm1
xorps xmm1, xmm1
call fcn.00525d20
add esp, 8
movss dword [esi + 0x10c], xmm0
movss xmm0, dword [esi + 0x120]
addss xmm0, dword [esi + 0x260]
sub esp, 8
movss xmm1, dword [esi + 0xc]
movaps xmm2, xmmword [esi + 0x210]
movss dword [esp + 4], xmm1
movss xmm1, dword [esi + 8]
movss dword [esp], xmm1
xorps xmm1, xmm1
call fcn.00525d20
add esp, 8
movss dword [esi + 0x13c], xmm0
movaps xmm0, xmmword [esi + 0x1c0]
mov dword [esi + 0x3a8], 0
movss dword [esi + 0x190], xmm0
movaps xmm0, xmmword [esi + 0x1d0]
movss dword [esi + 0x18c], xmm0
jmp 0x53d2a9
movss xmm0, dword [esi + 0xf0]
movss dword [esi + 0x120], xmm0
sub esp, 8
movss xmm1, dword [esi + 0xc]
movaps xmm2, xmmword [esi + 0x110]
movss dword [esp + 4], xmm1
movss xmm1, dword [esi + 8]
movss dword [esp], xmm1
xorps xmm1, xmm1
call fcn.00525d20
add esp, 8
movss dword [esi + 0x190], xmm0
movss xmm0, dword [esi + 0x120]
addss xmm0, dword [esi + 0x250]
sub esp, 8
movss xmm1, dword [esi + 0xc]
movaps xmm2, xmmword [esi + 0x110]
movss dword [esp + 4], xmm1
movss xmm1, dword [esi + 8]
movss dword [esp], xmm1
xorps xmm1, xmm1
call fcn.00525d20
add esp, 8
movss dword [esi + 0x18c], xmm0
movaps xmm0, xmmword [esi + 0x1c0]
mov dword [esi + 0x3a8], 0
movss dword [esi + 0x10c], xmm0
movaps xmm0, xmmword [esi + 0x1d0]
movss dword [esi + 0x13c], xmm0
mov ecx, dword [esi + 0x188]
mov edx, 0x2df45158
movss xmm2, dword [esi + 0x10]
xor ecx, ebx
mov ebx, dword [esi + 0x184]
xor ecx, dword [esi + 0x180]
xor ebx, dword [esi + 0x108]
mov eax, ecx
mul edx
mov dword [esi + 0x120], eax
imul eax, ecx, 0x2d7f954c
bswap ecx
add eax, edx
imul edx, ebx, 0x2df45158
bswap ebx
imul ecx, ecx, 0xb36a80d2
add edx, eax
mov eax, ebx
mov dword [esi + 0x144], edx
mov edx, 0xb36a80d2
mul edx
mov edi, eax
imul eax, ebx, 0xa7ae0bd2
add eax, edx
bswap edi
mov edx, 0xcf6654be
add ecx, eax
xor edi, dword [esi + 0x144]
bswap ecx
xor ecx, dword [esi + 0x120]
imul ebx, edi, 0xcf6654be
bswap edi
mov eax, ecx
mul edx
mov dword [esi + 0x120], eax
imul eax, ecx, 0x6e0ce934
add eax, edx
mov edx, 0xcb16f391
add ebx, eax
mov eax, edi
imul edi, edi, 0x41ab9930
mul edx
add edi, edx
mov edx, ecx
bswap eax
bswap edx
xor eax, ebx
mov ebx, 0x10101
imul edx, edx, 0xcb16f391
add edx, edi
mov edi, eax
bswap edx
xor edx, dword [esi + 0x120]
test cl, 0x20
cmovne edi, edx
cmovne edx, eax
mov eax, edx
shld eax, edi, cl
shld edi, edx, cl
mov ecx, dword [esi + 0x1e4]
cmp byte [esi + 0x17], 0
movsd xmm0, qword [ecx]
movsd xmm1, qword [ecx + 8]
mov ecx, dword [esi + 0x160]
movsd qword [esi + 0x30], xmm1
movsd qword [esi + 0x28], xmm0
movss xmm0, dword [ecx + 0x3c]
movss xmm1, dword [ecx + 0x40]
mov ecx, dword [ebp + 8]
movss dword [esi + 0x40], xmm2
movss xmm2, dword [esi + 0x1b0]
mov edx, dword [ecx + 0xc0]
movss dword [esi + 0x44], xmm2
movss xmm2, dword [esi + 0x18]
mov dword [esi + 0x160], edx
mov edx, dword [ecx + 0xc4]
movss dword [esi + 0x48], xmm2
movss xmm2, dword [esi + 0x74]
mov dword [esi + 0x120], edx
movzx edx, byte [ecx + 0x108]
mov ecx, dword [ecx + 0xc8]
movss dword [esi + 0x4c], xmm2
mov dword [esi + 0x1e8], edx
mov edx, dword [esi + 0x70]
mov dword [esi + 0x144], ecx
mov ecx, 0
cmove ebx, ecx
lea ecx, [esi + 0x88]
push dword [esi + 0x1e8]
push ebx
lea ebx, [esi + 0x40]
push ebx
push edi
push eax
push dword [esi + 0x144]
push dword [esi + 0x120]
push dword [esi + 0x160]
lea eax, [esi + 0x28]
push eax
call fcn.00519df0
mov edx, dword [ebp + 8]
add esp, 0x24
mov edi, dword [esi + 0x140]
mov ecx, dword [esi + 0x78]
cmp dword [esi + 0xb0], 0
je 0x53d4f2
mov ebx, dword [esi + 0x1c]
movss xmm0, dword [esi + 0xb4]
movss xmm1, dword [esi + 0xb8]
movaps xmm4, xmmword [esi + 0x1a0]
xorps xmm5, xmm5
cmp dword [esi + ebx*8 + 0xe0], 0
movss dword [esi + 0x19c], xmm0
movss dword [esi + 0x198], xmm1
je 0x53d548
cmp ebx, 1
mov dword [esi + 0x20], ebx
je 0x53d654
test ebx, ebx
jne 0x53e172
subss xmm0, dword [esi + ebx*8 + 0xe4]
movss xmm2, dword [esi + 8]
movss xmm1, dword [esi + 0xc]
mov dword [esi + 0x40], ebx
lea eax, [esi + 0xf0]
subss xmm0, xmm2
subss xmm1, xmm2
divss xmm0, xmm1
movss xmm1, dword [0x7255e0]
subss xmm1, xmm0
mulss xmm0, dword [esi + 0x110]
mulss xmm1, xmm5
addss xmm0, xmm1
jmp 0x53d69f
mov ebx, dword [esi + 0x1c]
movaps xmm4, xmmword [esi + 0x1a0]
xorps xmm5, xmm5
mov dword [esi + ebx*8 + 0xe0], 0
cmp ebx, 1
mov dword [esi + 0x20], ebx
jne 0x53d6b7
movss xmm0, dword [esi + 0xf4]
movaps xmm1, xmm4
movaps xmm2, xmm0
maxss xmm2, xmm5
minss xmm1, xmm2
movss dword [esi + 0xf4], xmm1
ucomiss xmm1, xmm0
jne 0x53d6e8
jp 0x53d6e8
jmp 0x53d70a
movss xmm6, dword [esi + 0x190]
movss xmm7, dword [esi + 0x18c]
ucomiss xmm0, xmm6
jb 0x53d597
ucomiss xmm7, xmm0
jb 0x53d597
ucomiss xmm1, dword [esi + 0x10c]
jb 0x53d597
movss xmm2, dword [esi + 0x13c]
ucomiss xmm2, xmm1
jb 0x53d597
cmp ebx, 1
mov dword [esi + 0x20], ebx
je 0x53d61e
test ebx, ebx
jne 0x53e614
lea eax, [esi + 0x19c]
jmp 0x53d62c
cmp ebx, 1
mov dword [esi + 0x20], ebx
je 0x53d5b0
test ebx, ebx
jne 0x53e65c
subss xmm7, xmm6
movaps xmm2, xmm0
jmp 0x53d5c3
movss xmm7, dword [esi + 0x13c]
movaps xmm2, xmm1
subss xmm7, dword [esi + 0x10c]
movss xmm6, dword [esi + 0xc]
movss xmm3, dword [esi + 8]
subss xmm6, xmm7
movss dword [esi + 0x1ec], xmm3
ucomiss xmm6, xmm3
movss dword [esi + 0x20], xmm6
jb 0x53e56e
mulss xmm7, dword [0x725b30]
test ebx, ebx
lea eax, [esi + 0x19c]
mov dword [esi + 0x20], ebx
je 0x53d60b
cmp ebx, 1
jne 0x53e5c9
lea eax, [esi + 0x198]
movss xmm3, dword [esi + 8]
addss xmm2, xmm7
maxss xmm3, xmm2
minss xmm6, xmm3
jmp 0x53d62c
movss xmm6, dword [esi + 0x10c]
lea eax, [esi + 0x198]
movss xmm2, dword [eax]
mov dword [esi + ebx*8 + 0xe0], 1
subss xmm2, xmm6
movss dword [esi + ebx*8 + 0xe4], xmm2
cmp ebx, 1
mov dword [esi + 0x20], ebx
jne 0x53d4a1
subss xmm1, dword [esi + ebx*8 + 0xe4]
movss xmm2, dword [esi + 8]
movss xmm0, dword [esi + 0xc]
lea eax, [esi + 0xf4]
mov dword [esi + 0x40], 1
subss xmm1, xmm2
subss xmm0, xmm2
divss xmm1, xmm0
movss xmm0, dword [0x7255e0]
subss xmm0, xmm1
mulss xmm1, dword [esi + 0x210]
mulss xmm0, xmm5
addss xmm1, xmm0
movaps xmm0, xmm1
movss dword [eax], xmm0
mov byte [esi + ebx + 0x104], 0
cmp ebx, 1
mov dword [esi + 0x20], ebx
je 0x53d516
test ebx, ebx
jne 0x53e06d
movss xmm0, dword [esi + 0xf0]
movaps xmm1, xmmword [esi + 0x200]
movaps xmm2, xmm0
maxss xmm2, xmm5
minss xmm1, xmm2
movss dword [esi + 0xf0], xmm1
ucomiss xmm1, xmm0
jne 0x53d6e8
jnp 0x53d70a
test ebx, ebx
lea eax, [esi + 0xf8]
mov dword [esi + 0x20], ebx
je 0x53d704
cmp ebx, 1
jne 0x53e1bd
lea eax, [esi + 0xfc]
mov dword [eax], 0
cmp byte [edx + 0xe4], 0
je 0x53d720
cmp dword [edx + 0xe5], 0
je 0x53da99
movss xmm0, dword [edx + 0xd8]
ucomiss xmm0, dword [esi + 0x10]
jb 0x53da99
movss xmm0, dword [esi + 0x18]
ucomiss xmm0, dword [edx + 0xd0]
jb 0x53da99
movss xmm0, dword [edx + 0xdc]
ucomiss xmm0, dword [esi + 0x1b0]
jb 0x53da99
movss xmm0, dword [esi + 0x74]
ucomiss xmm0, dword [edx + 0xd4]
jb 0x53da99
mov eax, ebx
mov ebx, edx
test eax, eax
je 0x53d8e9
movss xmm2, dword [esi + 0xf4]
movss dword [esi + 0x120], xmm2
sub esp, 8
movss xmm0, dword [esi + 0xc]
xorps xmm1, xmm1
movss dword [esp + 4], xmm0
movss xmm0, dword [esi + 8]
movss dword [esp], xmm0
movaps xmm0, xmm2
movaps xmm2, xmmword [esi + 0x210]
call fcn.00525d20
add esp, 8
movaps xmmword [esi + 0x160], xmm0
movss xmm0, dword [esi + 0x120]
addss xmm0, dword [esi + 0x260]
sub esp, 8
movss xmm1, dword [esi + 0xc]
movaps xmm2, xmmword [esi + 0x210]
movss dword [esp + 4], xmm1
movss xmm1, dword [esi + 8]
movss dword [esp], xmm1
xorps xmm1, xmm1
call fcn.00525d20
add esp, 8
movaps xmm1, xmm0
movaps xmm0, xmmword [esi + 0x1d0]
movaps xmm3, xmmword [esi + 0x1c0]
movaps xmm4, xmmword [esi + 0x160]
movaps xmm2, xmm0
unpcklps xmm0, xmm1
subss xmm1, xmm4
subss xmm2, xmm3
unpcklps xmm3, xmm4
movaps xmm4, xmm1
movaps xmm5, xmm3
mov ecx, dword [ebx + 0x100]
movss xmm3, dword [ecx + 0x9c]
ucomiss xmm3, xmm1
jbe 0x53d9a7
xor eax, eax
cmp dword [esi + 0x1c], 0
addps xmm5, xmm0
movaps xmm1, xmmword [0x7255f0]
unpcklps xmm2, xmm3
unpcklps xmm3, xmm4
sete al
mulps xmm5, xmm1
movd xmm0, eax
pshufd xmm0, xmm0, 0x50
pslld xmm0, 0x1f
psrad xmm0, 0x1f
andps xmm3, xmm0
andnps xmm0, xmm2
movaps xmm2, xmm5
orps xmm0, xmm3
mulps xmm0, xmm1
subps xmm2, xmm0
addps xmm0, xmm5
movlhps xmm2, xmm0
movaps xmm5, xmm2
cmp byte [esi + 0x17], 0
movaps xmmword [esi + 0x160], xmm5
je 0x53d9bb
movzx eax, byte [esi + 0xc0]
or al, byte [esi + 0xc1]
je 0x53d9c3
cmp byte [esi + 0xd7], 0
jne 0x53d8de
mov dword [esi + 8], ecx
lea ecx, [esi + 0x88]
mov dword [esi + 0x3a8], 6
call fcn.00530ba0
mov ebx, dword [ebp + 8]
mov edi, dword [esi + 0x140]
mov ecx, dword [esi + 8]
test al, al
je 0x53dac5
add ecx, 0x168
jmp 0x53d9c9
movss xmm2, dword [esi + 0xf0]
movss dword [esi + 0x120], xmm2
sub esp, 8
movss xmm0, dword [esi + 0xc]
xorps xmm1, xmm1
movss dword [esp + 4], xmm0
movss xmm0, dword [esi + 8]
movss dword [esp], xmm0
movaps xmm0, xmm2
movaps xmm2, xmmword [esi + 0x110]
call fcn.00525d20
add esp, 8
movaps xmmword [esi + 0x160], xmm0
movss xmm0, dword [esi + 0x120]
addss xmm0, dword [esi + 0x250]
sub esp, 8
movss xmm1, dword [esi + 0xc]
movaps xmm2, xmmword [esi + 0x110]
movss dword [esp + 4], xmm1
movss xmm1, dword [esi + 8]
movss dword [esp], xmm1
xorps xmm1, xmm1
call fcn.00525d20
movaps xmm5, xmmword [esi + 0x160]
add esp, 8
movaps xmm4, xmmword [esi + 0x1d0]
movaps xmm1, xmmword [esi + 0x1c0]
movaps xmm2, xmm0
subss xmm2, xmm5
unpcklps xmm0, xmm4
subss xmm4, xmm1
unpcklps xmm5, xmm1
movaps xmm1, xmm2
mov ecx, dword [ebx + 0x100]
movss xmm3, dword [ecx + 0x9c]
ucomiss xmm3, xmm1
ja 0x53d83b
movlhps xmm5, xmm0
cmp byte [esi + 0x17], 0
movaps xmmword [esi + 0x160], xmm5
jne 0x53d896
lea edx, [ecx + 0x110]
jmp 0x53d9db
add ecx, 0xe4
mov edx, ecx
mov ecx, dword [ebx + 0x100]
mov dword [esi + 0x3a8], 6
movsd xmm1, qword [edx + 8]
mov eax, dword [ecx + 0x1d4]
lea ecx, [esi + 0x50]
movsd xmm0, qword [edx]
movss xmm2, dword [esi + 0x10]
mov dword [esi + 8], edx
lea edx, [esi + 0x40]
mov dword [esi + 0x3a8], 6
movsd qword [ecx + 8], xmm1
movss xmm1, dword [esi + 0x1b0]
movsd qword [ecx], xmm0
movss dword [esi + 0x40], xmm2
movss xmm2, dword [esi + 0x18]
mov ecx, edi
movss dword [esi + 0x44], xmm1
movss xmm1, dword [esi + 0x74]
movss dword [esi + 0x48], xmm2
movss dword [esi + 0x4c], xmm1
mov dword [esi + 0x60], 0
mov dword [esi + 0x64], 0
mov dword [esi + 0x68], eax
mov byte [esi + 0x6c], 7
call fcn.005606f0
mov ecx, dword [esi + 8]
lea edx, [esi + 0x40]
movsd xmm0, qword [ecx]
movsd xmm1, qword [ecx + 8]
mov eax, dword [ecx + 0x20]
lea ecx, [esi + 0x50]
movsd qword [ecx + 8], xmm1
movsd qword [ecx], xmm0
movaps xmm1, xmmword [esi + 0x160]
mov ecx, dword [esi + 0x140]
movups xmmword [esi + 0x40], xmm1
mov dword [esi + 0x60], 0
mov dword [esi + 0x64], 0
mov dword [esi + 0x68], eax
mov byte [esi + 0x6c], 7
call fcn.005606f0
mov ecx, dword [esi + 0x78]
mov eax, dword [esi + 0xbc]
lock dec dword [eax]
jne 0x53cf40
mov ecx, dword [esi + 0xbc]
mov dword [esi + 0x3a8], 0
call fcn.00562540
mov ecx, dword [esi + 0x78]
jmp 0x53cf40
movzx eax, byte [esi + 0xc4]
or al, byte [esi + 0xc5]
jne 0x53dadf
add ecx, 0x110
jmp 0x53d9c9
add ecx, 0x13c
jmp 0x53d9c9
movaps xmm0, xmmword [esi + 0x1f0]
movaps xmm1, xmmword [esi + 0x220]
mov ecx, dword [ebp + 8]
lea edx, [esi + 0x88]
mov dword [esi + 0x3a8], 0
movlps qword [esi + 0x88], xmm0
movlps qword [esi + 0x90], xmm1
call fcn.0052f8d0
movzx eax, byte [esi + 0x7c]
movzx ecx, byte [esi + 0x80]
shl eax, 8
or ecx, eax
cmp cx, word [esi + 0x100]
je 0x53dc25
mov eax, dword [esi + 0x70]
mov edx, 8
mov edi, dword [eax]
xor eax, eax
lock cmpxchg dword [edi + 8], edx
lea ecx, [edi + 8]
je 0x53db62
mov dword [esi + 8], ecx
mov dword [esi + 0xc], edi
call fcn.007188f0
mov edi, dword [esi + 0xc]
mov ecx, dword [esi + 8]
mov dword [edi + 0x4a0], 2
mov eax, dword [edi + 0x480]
or eax, dword [edi + 0x484]
jne 0x53db87
cmp dword [edi + 0x488], 0
je 0x53dc09
mov dword [edi + 0x484], 0
mov dword [edi + 0x480], 0
mov dword [edi + 0x488], 0
mov eax, dword [edi + 0x498]
test eax, eax
je 0x53dc09
mov dword [esi + 8], ecx
mov ecx, dword [edi + 0x490]
mov edx, dword [edi + 0x494]
mov dword [esi + 0x8c], edx
mov dword [esi + 0x88], ecx
mov dword [esi + 0x94], 0
mov dword [esi + 0x90], 0
mov dword [esi + 0x98], 0
lea edx, [esi + 0x88]
mov ecx, dword [edi + 0x49c]
mov dword [esi + 0x3a8], 5
push edx
push eax
call dword [ecx + 0x14]
add esp, 8
mov ecx, dword [esi + 8]
xor edx, edx
mov eax, 8
lock cmpxchg dword [ecx], edx
je 0x53dc25
mov dword [esi + 0x3a8], 0
call fcn.00719150
movaps xmm3, xmmword [esi + 0x200]
movsd xmm0, qword [esi + 0xf0]
mov al, 1
mov cl, 1
movaps xmm1, xmm3
movaps xmm2, xmm3
minps xmm1, xmm0
cmpunordps xmm0, xmm0
andps xmm2, xmm0
andnps xmm0, xmm1
xorps xmm1, xmm1
orps xmm0, xmm2
movaps xmm2, xmmword [esi + 0x1a0]
maxps xmm1, xmm0
cmpordps xmm0, xmm0
andps xmm0, xmm1
ucomiss xmm0, xmm3
movlps qword [esi + 0xf0], xmm0
jne 0x53dc95
jp 0x53dc95
shufps xmm0, xmm0, 0x55
ucomiss xmm0, xmm2
jne 0x53dc7b
jnp 0x53dccf
mov eax, dword [esi + 0x17c]
cmp byte [eax + 0x16d], 0
je 0x53dcbe
xorps xmm0, xmm0
ucomiss xmm0, xmm2
seta al
jmp 0x53dccf
mov ecx, dword [esi + 0x17c]
cmp byte [ecx + 0x16c], 0
je 0x53dcc2
xorps xmm1, xmm1
ucomiss xmm1, dword [esi + 0x200]
seta cl
shufps xmm0, xmm0, 0x55
ucomiss xmm0, xmm2
jne 0x53dc7b
jnp 0x53dccf
jmp 0x53dc7b
xor eax, eax
jmp 0x53dccf
xor ecx, ecx
shufps xmm0, xmm0, 0x55
ucomiss xmm0, xmm2
jne 0x53dc7b
jp 0x53dc7b
mov byte [esi + 0x104], cl
mov byte [esi + 0x105], al
mov eax, dword [esi + 0x80]
mov edx, 8
mov byte [esi + 0x100], al
mov eax, dword [esi + 0x7c]
mov byte [esi + 0x101], al
movzx eax, byte [esi + 0x27]
mov byte [esi + 0x102], al
movzx eax, byte [esi + 0x26]
mov byte [esi + 0x103], al
mov eax, dword [esi + 0x70]
movsd xmm2, qword [esi + 0xf8]
movsd xmm1, qword [esi + 0xf0]
movsd xmm0, qword [esi + 0x100]
mov edi, dword [eax]
xor eax, eax
movsd qword [esi + 0xa0], xmm2
movsd qword [esi + 0x98], xmm1
movsd xmm2, qword [esi + 0xe0]
movsd xmm1, qword [esi + 0xe8]
movsd qword [esi + 0xa8], xmm0
lea ecx, [edi + 8]
movsd qword [esi + 0x90], xmm1
movsd qword [esi + 0x88], xmm2
lock cmpxchg dword [edi + 8], edx
mov dword [esi + 8], ecx
je 0x53dd82
mov dword [esi + 0x3a8], 0
mov dword [esi + 0xc], edi
call fcn.007188f0
mov edi, dword [esi + 0xc]
movzx eax, byte [0x919aa5]
mov eax, dword [0x919820]
test eax, eax
jne 0x53dda5
call dword [sym.imp.kernel32.dll_GetProcessHeap]
test eax, eax
je 0x53e550
mov dword [0x919820], eax
push 0x28
push 0
push eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
test eax, eax
mov dword [esi + 0x3a8], 3
je 0x53e550
movsd xmm0, qword [esi + 0xa8]
add edi, 0xf0
mov ebx, dword [esi + 0x130]
lea ecx, [esi + 0x28]
mov edx, edi
mov edi, dword [esi + 0x134]
movsd qword [eax + 0x20], xmm0
xor ebx, 0xc49fa07f
movsd xmm0, qword [esi + 0xa0]
xor edi, 0x79e5baef
movsd qword [eax + 0x18], xmm0
movsd xmm0, qword [esi + 0x98]
movsd qword [eax + 0x10], xmm0
movsd xmm0, qword [esi + 0x88]
movsd xmm1, qword [esi + 0x90]
movsd qword [eax + 8], xmm1
movsd qword [eax], xmm0
mov dword [esi + 0x48], eax
lea eax, [esi + 0x40]
mov dword [esi + 0x4c], 0x740ac0
mov dword [esi + 0x50], 0x511fd0
mov dword [esi + 0x44], 0x5120e0
mov dword [esi + 0x40], 0
push eax
push ebx
push edi
call fcn.0052c2f0
add esp, 0xc
mov eax, dword [esi + 0x28]
mov edi, dword [esi + 8]
cmp eax, 2
je 0x53debe
test eax, eax
je 0x53de76
mov eax, dword [esi + 0x38]
lock dec dword [eax]
jne 0x53debe
mov ecx, dword [esi + 0x38]
mov edx, dword [esi + 0x3c]
call fcn.004f2ff0
jmp 0x53debe
mov eax, dword [esi + 0x30]
mov ecx, dword [esi + 0x34]
mov dword [esi + 0x3a8], 4
mov dword [esi + 0x10], eax
push eax
mov dword [esi + 0xc], ecx
call dword [ecx]
add esp, 4
mov eax, dword [esi + 0xc]
mov edi, dword [esi + 8]
cmp dword [eax + 4], 0
je 0x53debe
cmp dword [eax + 8], 9
jae 0x53dea9
mov eax, dword [esi + 0x10]
jmp 0x53deaf
mov eax, dword [esi + 0x10]
mov eax, dword [eax - 4]
push eax
push 0
push dword [0x919820]
call dword [sym.imp.kernel32.dll_HeapFree]
xor ecx, ecx
mov eax, 8
lock cmpxchg dword [edi], ecx
je 0x53dedc
mov ecx, edi
mov dword [esi + 0x3a8], 0
call fcn.00719150
mov eax, dword [esi + 0x1e0]
movsd xmm1, qword [esi + 0xf0]
movsd xmm2, qword [esi + 0xf8]
movsd xmm0, qword [esi + 0x100]
lea ecx, [esi + 0x288]
mov dword [esi + 0x3a8], 0xffffffff
movsd qword [eax + 0x18], xmm1
movsd xmm1, qword [esi + 0xe8]
movsd qword [eax + 0x20], xmm2
movsd xmm2, qword [esi + 0xe0]
movsd qword [eax + 0x28], xmm0
movsd qword [eax + 0x10], xmm1
movaps xmm1, xmmword [esi + 0x110]
movsd qword [eax + 8], xmm2
movlps qword [eax], xmm1
call fcn.00539110
mov eax, dword [esi + 0x3a0]
mov dword fs:[0], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
lea ecx, [esi + 0x40]
lea eax, [esi + 0x28]
mov dword [esi + 0x88], 0x740d34
mov dword [esi + 0x8c], 1
mov dword [esi + 0x98], 0
mov edx, 0x740e78
mov dword [esi + 0x3a8], 0
mov dword [esi + 0x90], ecx
lea ecx, [esi + 0x88]
mov dword [esi + 0x40], eax
mov dword [esi + 0x44], 0x4262e0
mov dword [esi + 0x94], 1
call fcn.00709f70
jmp 0x53e6a2
lea ecx, [esi + 0x40]
lea eax, [esi + 0x28]
mov dword [esi + 0x88], 0x740d10
mov dword [esi + 0x8c], 1
mov dword [esi + 0x98], 0
mov edx, 0x740e98
mov dword [esi + 0x3a8], 0
mov dword [esi + 0x90], ecx
lea ecx, [esi + 0x88]
mov dword [esi + 0x40], eax
mov dword [esi + 0x44], 0x4262e0
mov dword [esi + 0x94], 1
call fcn.00709f70
jmp 0x53e6a2
lea ecx, [esi + 0x40]
lea eax, [esi + 0x28]
mov dword [esi + 0x88], 0x740d10
mov dword [esi + 0x8c], 1
mov dword [esi + 0x98], 0
mov edx, 0x740e88
mov dword [esi + 0x3a8], 0
mov dword [esi + 0x90], ecx
lea ecx, [esi + 0x88]
mov dword [esi + 0x40], eax
mov dword [esi + 0x44], 0x4262e0
mov dword [esi + 0x94], 1
call fcn.00709f70
jmp 0x53e6a2
lea ecx, [esi + 0x28]
lea eax, [esi + 0x20]
mov dword [esi + 0x40], 0x740d34
mov dword [esi + 0x44], 1
mov dword [esi + 0x50], 0
mov edx, 0x740ed8
mov dword [esi + 0x3a8], 6
mov dword [esi + 0x48], ecx
lea ecx, [esi + 0x40]
mov dword [esi + 0x28], eax
mov dword [esi + 0x2c], 0x4262e0
mov dword [esi + 0x4c], 1
call fcn.00709f70
jmp 0x53e6a2
lea ecx, [esi + 0x40]
lea eax, [esi + 0x28]
mov dword [esi + 0x88], 0x740d10
mov dword [esi + 0x8c], 1
mov dword [esi + 0x98], 0
mov edx, 0x740f48
mov dword [esi + 0x3a8], 0
mov dword [esi + 0x90], ecx
lea ecx, [esi + 0x88]
mov dword [esi + 0x40], eax
mov dword [esi + 0x44], 0x4262e0
mov dword [esi + 0x94], 1
call fcn.00709f70
jmp 0x53e6a2
lea ecx, [esi + 0x28]
lea eax, [esi + 0x20]
mov dword [esi + 0x40], 0x740d10
mov dword [esi + 0x44], 1
mov dword [esi + 0x50], 0
mov edx, 0x740ec8
mov dword [esi + 0x3a8], 6
mov dword [esi + 0x48], ecx
lea ecx, [esi + 0x40]
mov dword [esi + 0x28], eax
mov dword [esi + 0x2c], 0x4262e0
mov dword [esi + 0x4c], 1
call fcn.00709f70
jmp 0x53e6a2
lea ecx, [esi + 0x28]
lea eax, [esi + 0x20]
mov dword [esi + 0x40], 0x740d34
mov dword [esi + 0x44], 1
mov dword [esi + 0x50], 0
mov edx, 0x740ee8
mov dword [esi + 0x3a8], 6
mov dword [esi + 0x48], ecx
lea ecx, [esi + 0x40]
mov dword [esi + 0x28], eax
mov dword [esi + 0x2c], 0x4262e0
mov dword [esi + 0x4c], 1
call fcn.00709f70
jmp 0x53e6a2
lea ecx, [esi + 0x40]
lea eax, [esi + 0x28]
mov dword [esi + 0x88], 0x740d34
mov dword [esi + 0x8c], 1
mov dword [esi + 0x98], 0
mov edx, 0x740ef8
mov dword [esi + 0x3a8], 0
mov dword [esi + 0x90], ecx
lea ecx, [esi + 0x88]
mov dword [esi + 0x40], eax
mov dword [esi + 0x44], 0x4262e0
mov dword [esi + 0x94], 1
call fcn.00709f70
jmp 0x53e6a2
lea ecx, [esi + 0x40]
lea eax, [esi + 0x28]
mov dword [esi + 0x88], 0x740d34
mov dword [esi + 0x8c], 1
mov dword [esi + 0x98], 0
mov edx, 0x740f18
mov dword [esi + 0x3a8], 0
mov dword [esi + 0x90], ecx
lea ecx, [esi + 0x88]
mov dword [esi + 0x40], eax
mov dword [esi + 0x44], 0x4262e0
mov dword [esi + 0x94], 1
call fcn.00709f70
jmp 0x53e6a2
lea ecx, [esi + 0x40]
lea eax, [esi + 0x28]
mov dword [esi + 0x88], 0x740d10
mov dword [esi + 0x8c], 1
mov dword [esi + 0x98], 0
mov edx, 0x740ea8
mov dword [esi + 0x3a8], 0
mov dword [esi + 0x90], ecx
lea ecx, [esi + 0x88]
mov dword [esi + 0x40], eax
mov dword [esi + 0x44], 0x4262e0
mov dword [esi + 0x94], 1
call fcn.00709f70
jmp 0x53e6a2
lea ecx, [esi + 0x40]
lea eax, [esi + 0x28]
mov dword [esi + 0x88], 0x740d34
mov dword [esi + 0x8c], 1
mov dword [esi + 0x98], 0
mov edx, 0x740eb8
mov dword [esi + 0x3a8], 0
mov dword [esi + 0x90], ecx
lea ecx, [esi + 0x88]
mov dword [esi + 0x40], eax
mov dword [esi + 0x44], 0x4262e0
mov dword [esi + 0x94], 1
call fcn.00709f70
jmp 0x53e6a2
lea ecx, [esi + 0x40]
lea eax, [esi + 0x28]
mov dword [esi + 0x88], 0x740d34
mov dword [esi + 0x8c], 1
mov dword [esi + 0x98], 0
mov edx, 0x740f28
mov dword [esi + 0x3a8], 0
mov dword [esi + 0x90], ecx
lea ecx, [esi + 0x88]
mov dword [esi + 0x40], eax
mov dword [esi + 0x44], 0x4262e0
mov dword [esi + 0x94], 1
call fcn.00709f70
jmp 0x53e6a2
lea ecx, [esi + 0x40]
lea eax, [esi + 0x28]
mov dword [esi + 0x88], 0x740d34
mov dword [esi + 0x8c], 1
mov dword [esi + 0x98], 0
mov edx, 0x740f38
mov dword [esi + 0x3a8], 0
mov dword [esi + 0x90], ecx
lea ecx, [esi + 0x88]
mov dword [esi + 0x40], eax
mov dword [esi + 0x44], 0x4262e0
mov dword [esi + 0x94], 1
call fcn.00709f70
jmp 0x53e6a2
lea ecx, [esi + 0x40]
lea eax, [esi + 0x28]
mov dword [esi + 0x88], 0x740d34
mov dword [esi + 0x8c], 1
mov dword [esi + 0x98], 0
mov edx, 0x740818
mov dword [esi + 0x10], edi
mov dword [esi + 0x3a8], 2
mov dword [esi + 0x90], ecx
lea ecx, [esi + 0x88]
mov dword [esi + 0x40], eax
mov dword [esi + 0x44], 0x4262e0
mov dword [esi + 0x94], 1
call fcn.00709f70
jmp 0x53e6a2
lea ecx, [esi + 0x40]
lea eax, [esi + 0x28]
mov dword [esi + 0x88], 0x740d34
mov dword [esi + 0x8c], 1
mov dword [esi + 0x98], 0
mov edx, 0x740f08
mov dword [esi + 0x3a8], 0
mov dword [esi + 0x90], ecx
lea ecx, [esi + 0x88]
mov dword [esi + 0x40], eax
mov dword [esi + 0x44], 0x4262e0
mov dword [esi + 0x94], 1
call fcn.00709f70
jmp 0x53e6a2
mov ecx, 4
mov edx, 0x28
mov dword [esi + 0x3a8], 3
call fcn.00709d20
jmp 0x53e6a2
lea eax, [esi + 0x1ec]
lea edx, [esi + 0x20]
lea ecx, [esi + 0x28]
mov dword [esi + 0x40], 0x7416ec
mov dword [esi + 0x44], 2
mov dword [esi + 0x50], 0
mov dword [esi + 0x3a8], 6
mov dword [esi + 0x48], ecx
mov dword [esi + 0x28], eax
mov dword [esi + 0x2c], 0x4323b0
mov dword [esi + 0x30], edx
lea ecx, [esi + 0x40]
mov edx, 0x741748
mov dword [esi + 0x34], 0x4323b0
mov dword [esi + 0x4c], 2
call fcn.00709f70
jmp 0x53e6a2
lea ecx, [esi + 0x28]
lea eax, [esi + 0x20]
mov dword [esi + 0x40], 0x740d10
mov dword [esi + 0x44], 1
mov dword [esi + 0x50], 0
mov edx, 0x740f88
mov dword [esi + 0x3a8], 6
mov dword [esi + 0x48], ecx
lea ecx, [esi + 0x40]
mov dword [esi + 0x28], eax
mov dword [esi + 0x2c], 0x4262e0
mov dword [esi + 0x4c], 1
call fcn.00709f70
jmp 0x53e6a2
lea ecx, [esi + 0x28]
lea eax, [esi + 0x20]
mov dword [esi + 0x40], 0x740d10
mov dword [esi + 0x44], 1
mov dword [esi + 0x50], 0
mov edx, 0x740f98
mov dword [esi + 0x3a8], 6
mov dword [esi + 0x48], ecx
lea ecx, [esi + 0x40]
mov dword [esi + 0x28], eax
mov dword [esi + 0x2c], 0x4262e0
mov dword [esi + 0x4c], 1
call fcn.00709f70
jmp 0x53e6a2
lea ecx, [esi + 0x28]
lea eax, [esi + 0x20]
mov dword [esi + 0x40], 0x740d34
mov dword [esi + 0x44], 1
mov dword [esi + 0x50], 0
mov edx, 0x740f78
mov dword [esi + 0x3a8], 6
mov dword [esi + 0x48], ecx
lea ecx, [esi + 0x40]
mov dword [esi + 0x28], eax
mov dword [esi + 0x2c], 0x4262e0
mov dword [esi + 0x4c], 1
call fcn.00709f70
ud2