Function at 0x5a6af0
Capabilities:
Access peb ldr_data
Get ntdll base address
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x380
mov esi, esp
mov dword [esi + 0x368], ebp
mov dword [esi + 0x36c], esp
mov dword [esi + 0x378], 0xffffffff
mov dword [esi + 0x374], 0x7050c0
mov dword [esi + 0xec], edx
mov dword [esi + 0x320], ecx
mov edi, dword [ebp + 8]
mov eax, dword fs:[0]
mov dword [esi + 0x370], eax
lea eax, [esi + 0x370]
mov dword fs:[0], eax
movzx eax, byte [0x919aa5]
mov eax, dword [0x919820]
test eax, eax
jne 0x5a6b6b
call dword [sym.imp.kernel32.dll_GetProcessHeap]
test eax, eax
je 0x5ab11f
mov dword [0x919820], eax
push 0x14
push 0
push eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
test eax, eax
je 0x5ab11f
mov dword [eax], 4
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax + 0x10], 0
mov dword [eax + 0xc], 0
mov dword [esi + 0x22c], eax
mov dword [esi + 0x230], 1
mov dword [esi + 0x234], 1
mov edx, dword [edi + 0x24]
imul eax, dword [edi + 0x2c], 0x38
add eax, edx
mov dword [esi + 0x2f4], eax
xor eax, eax
jmp 0x5a6bd9
mov edx, dword [esi + 0x64]
mov eax, dword [esi + 0x9c]
cmp edx, dword [esi + 0x2f4]
mov dword [esi + 0x210], eax
mov dword [esi + 0x2c4], edx
je 0x5a760b
mov eax, dword [ebp + 8]
mov ecx, dword [esi + 0xec]
mov byte [esi + 7], 1
mov dword [esi + 0x378], 1
mov dword [esi + 0x180], eax
call fcn.005a2a40
mov dword [esi + 0x80], eax
mov ecx, dword [esi + 0x234]
sub ecx, 1
jb 0x5ab05e
mov eax, dword [esi + 0x22c]
test eax, eax
je 0x5ab05e
mov ebx, dword [esi + 0x80]
lea ecx, [ecx + ecx*4]
lea edx, [eax + ecx*4]
cmp dword [edx + 8], 0
mov dword [esi + 0x160], edx
movss xmm0, dword [ebx + 0x7c]
movss dword [esi + 0x68], xmm0
jne 0x5a6c63
movss xmm0, dword [esi + 0x68]
movss dword [eax + ecx*4 + 0x10], xmm0
mov edx, dword [esi + 0x2c4]
movss xmm0, dword [edx + 0x2c]
addss xmm0, dword [eax + ecx*4 + 0xc]
movss dword [eax + ecx*4 + 0xc], xmm0
mov ecx, dword [edx + 0x34]
mov edi, dword [edx + 0x30]
mov edx, dword [esi + 0x180]
mov eax, dword [edx + 0x18]
mov edx, dword [edx + 0x20]
cmp ecx, edi
mov dword [esi + 0xa0], ecx
mov dword [esi + 0x50], eax
jb 0x5ab03e
test edi, edi
je 0x5a6cc6
cmp edi, edx
jae 0x5a6cc0
mov ecx, dword [esi + 0x50]
cmp byte [ecx + edi], 0xc0
jge 0x5a6cc6
jmp 0x5ab03e
jne 0x5ab03e
cmp dword [esi + 0xa0], 0
je 0x5a6cf6
mov eax, dword [esi + 0xa0]
cmp eax, edx
jae 0x5a6cf0
mov ecx, dword [esi + 0x50]
cmp byte [ecx + eax], 0xbf
jg 0x5a6cf6
jmp 0x5ab03e
jne 0x5ab03e
mov eax, dword [esi + 0x2c4]
mov ecx, dword [esi + 0xa0]
lea edx, [eax + 0x38]
mov eax, dword [esi + 0x210]
cmp edi, ecx
lea eax, [eax + 1]
je 0x5a6bd9
mov dword [esi + 0x9c], eax
mov eax, dword [esi + 0x50]
mov dword [esi + 0x64], edx
mov dword [esi + 0x1f0], 0
add ecx, eax
add edi, eax
mov eax, dword [esi + 0x180]
mov dword [esi + 0xa0], ecx
movzx eax, byte [eax + 0x34]
mov byte [esi + 0x200], al
lea eax, [ebx + 0x50]
mov dword [esi + 0x2c], eax
mov eax, ebx
add eax, 0x10
mov dword [esi + 0x6c], eax
mov dword [esi + 0x190], eax
jmp 0x5a6e38
mov edi, ebx
mov ebx, ecx
mov eax, dword [ecx]
imul ecx, edx, 0x34
mov edx, dword [esi + 0x180]
mov dword [eax + ecx], edx
movss dword [eax + ecx + 4], xmm0
movaps xmm0, xmm2
mov dword [eax + ecx + 8], 0x7fc00000
mov edx, dword [esi + 0x210]
shufps xmm0, xmm2, 0xe1
movlps qword [eax + ecx + 0xc], xmm0
movss dword [eax + ecx + 0x14], xmm3
movsd xmm0, qword [esi + 0xf0]
movq xmm1, qword [esi + 0xf8]
movsd qword [eax + ecx + 0x18], xmm0
movq qword [eax + ecx + 0x20], xmm1
movsd xmm0, qword [esi + 0x100]
movsd qword [eax + ecx + 0x28], xmm0
mov dword [eax + ecx + 0x30], edx
inc dword [ebx + 8]
addss xmm2, dword [ebx + 0xc]
movss dword [ebx + 0xc], xmm2
movss xmm0, dword [edi + 0x78]
movss dword [esi + 0x180], xmm0
mulss xmm2, xmm0
sub esp, 4
movss dword [esp], xmm2
call sub.api_ms_win_crt_math_l1_1_0.dll_roundf
add esp, 4
fstp dword [esi + 0x358]
mov ax, 1
movss xmm0, dword [esi + 0x358]
mov dword [esi + 0x1f0], eax
mov eax, dword [esi + 0x10]
mov dword [esi + 0x190], eax
divss xmm0, dword [esi + 0x180]
movss dword [ebx + 0xc], xmm0
mov ebx, edi
mov edi, dword [esi + 0xc0]
mov ecx, dword [esi + 0xa0]
cmp edi, ecx
je 0x5a6bd0
movzx edx, byte [edi]
movzx eax, dl
test dl, dl
js 0x5a6e50
inc edi
mov dword [esi + 0x180], eax
jmp 0x5a6ecd
mov ebx, edi
movzx edi, byte [edi + 1]
and eax, 0x1f
and edi, 0x3f
cmp dl, 0xdf
jbe 0x5a6ea7
movzx ecx, byte [ebx + 2]
shl edi, 6
and ecx, 0x3f
or ecx, edi
cmp dl, 0xf0
jb 0x5a6eb7
movzx edx, byte [ebx + 3]
and eax, 7
shl ecx, 6
add ebx, 4
shl eax, 0x12
mov edi, ebx
mov ebx, dword [esi + 0x80]
and edx, 0x3f
or edx, ecx
or edx, eax
mov dword [esi + 0x180], edx
cmp edx, 0x110000
mov edx, dword [esi + 0x64]
jne 0x5a6ecd
jmp 0x5a7600
shl eax, 6
add ebx, 2
or eax, edi
mov dword [esi + 0x180], eax
jmp 0x5a6ec5
shl eax, 0xc
add ebx, 3
or ecx, eax
mov dword [esi + 0x180], ecx
mov edi, ebx
mov ebx, dword [esi + 0x80]
cmp byte [esi + 0x200], 0
je 0x5a6f90
cmp dword [esi + 0x180], 0xa
jne 0x5a6f90
mov edx, dword [esi + 0x234]
cmp edx, dword [esi + 0x230]
jne 0x5a6f22
lea ecx, [esi + 0x22c]
mov dword [esi + 0xc0], edi
mov dword [esi + 0x378], 7
call fcn.00486040
mov edx, dword [esi + 0x234]
mov ebx, dword [esi + 0x80]
mov edi, dword [esi + 0xc0]
mov eax, dword [esi + 0x22c]
lea ecx, [edx + edx*4]
inc edx
mov dword [eax + ecx*4], 4
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 0x10], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [esi + 0x234], edx
je 0x5aaf3c
movss xmm0, dword [esi + 0x68]
lea edx, [eax + ecx*4]
mov dword [esi + 0x160], edx
movss dword [eax + ecx*4 + 0x10], xmm0
mov ecx, dword [esi + 0xa0]
cmp edi, ecx
jne 0x5a6e38
jmp 0x5a6bd0
mov eax, dword [ebx + 0x48]
mov dword [esi + 0xc0], edi
test eax, eax
je 0x5a718d
cmp dword [ebx + 0x1c], 0
mov dword [esi + 0x30], eax
je 0x5a71cc
mov ecx, dword [ebx + 0x20]
mov edi, dword [ebx + 0x24]
mov edx, 0x2df45158
xor ecx, dword [esi + 0x180]
mov eax, ecx
mul edx
mov dword [esi + 0x50], eax
imul eax, ecx, 0x2d7f954c
bswap ecx
add eax, edx
imul edx, edi, 0x2df45158
bswap edi
add edx, eax
mov eax, edi
imul edi, edi, 0xa7ae0bd2
mov dword [esi + 0x10], edx
mov edx, 0xb36a80d2
mul edx
mov ebx, eax
imul eax, ecx, 0xb36a80d2
mov ecx, dword [esi + 0x80]
add edi, edx
add eax, edi
bswap ebx
bswap eax
xor ebx, dword [esi + 0x10]
xor eax, dword [esi + 0x50]
mov edx, dword [ecx + 0x2c]
mov edi, dword [ecx + 0x28]
mov dword [esi + 0xd0], eax
mov ecx, edi
mov dword [esi + 8], edx
bswap edx
not edi
bswap ecx
mov dword [esi + 0x50], edx
imul ecx, eax
mul dword [esi + 0x50]
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x50]
add edx, ecx
imul eax, ebx
bswap ebx
add eax, edx
mov dword [esi + 0x50], eax
mov eax, dword [esi + 8]
mov dword [esi + 8], 0
not eax
imul eax, ebx
mov ecx, eax
mov eax, ebx
mov ebx, dword [esi + 0xd0]
mul edi
add edx, ecx
bswap eax
xor eax, dword [esi + 0x50]
mov ecx, ebx
bswap ecx
imul edi, ecx
mov ecx, ebx
add edi, edx
mov edx, eax
bswap edi
xor edi, dword [esi + 0x10]
test bl, 0x20
cmovne edx, edi
cmovne edi, eax
mov eax, dword [esi + 0x80]
shld edi, edx, cl
mov ecx, dword [eax + 0x10]
mov ebx, dword [eax + 0x14]
mov eax, edi
shr eax, 0x19
movd xmm0, eax
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
lea eax, [ecx - 0x30]
mov dword [esi + 0xd0], ecx
mov dword [esi + 0x50], ebx
pshufd xmm0, xmm0, 0
mov dword [esi + 0x10], eax
and edi, ebx
movdqa xmm2, xmm0
movdqu xmm1, xmmword [ecx + edi]
mov edx, edi
pcmpeqb xmm2, xmm1
pmovmskb eax, xmm2
nop word cs:[eax + eax]
nop dword [eax + eax]
test ax, ax
je 0x5a7100
lea ecx, [eax - 1]
mov edi, dword [esi + 0x10]
and ecx, eax
tzcnt eax, eax
add eax, edx
and eax, dword [esi + 0x50]
neg eax
lea ebx, [eax + eax*2]
mov eax, dword [esi + 0x180]
shl ebx, 4
cmp eax, dword [edi + ebx]
mov eax, ecx
jne 0x5a70d0
jmp 0x5a7137
pcmpeqd xmm2, xmm2
mov ebx, dword [esi + 0x80]
pcmpeqb xmm1, xmm2
pmovmskb eax, xmm1
test eax, eax
jne 0x5a71cc
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xd0]
mov ebx, dword [esi + 0x50]
mov edi, edx
lea edi, [edx + eax + 0x10]
add eax, 0x10
mov dword [esi + 8], eax
jmp 0x5a70ac
mov eax, dword [esi + 0xd0]
mov edx, dword [esi + 0x30]
movsd xmm0, qword [eax + ebx - 0x18]
mov ecx, dword [eax + ebx - 0x2c]
movsd qword [esi + 0x100], xmm0
movsd xmm0, qword [eax + ebx - 0x20]
movsd qword [esi + 0xf8], xmm0
movsd xmm0, qword [eax + ebx - 0x28]
movsd qword [esi + 0xf0], xmm0
movsd xmm2, qword [eax + ebx - 0x10]
movss xmm3, dword [eax + ebx - 8]
movzx eax, word [eax + ebx - 4]
mov ebx, dword [esi + 0x80]
mov dword [esi + 0x10], eax
jmp 0x5a73ee
mov ecx, dword [esi + 0x2c]
movzx eax, word [ebx + 0x74]
movsd xmm2, qword [ebx + 0x68]
movss xmm3, dword [ebx + 0x70]
movsd xmm0, qword [ecx + 0x10]
mov dword [esi + 0x10], eax
movsd qword [esi + 0x100], xmm0
movsd xmm0, qword [ecx]
movsd xmm1, qword [ecx + 8]
movsd qword [esi + 0xf8], xmm1
movsd qword [esi + 0xf0], xmm0
jmp 0x5a75a0
mov ecx, dword [ebx + 0x40]
mov eax, dword [esi + 0x30]
mov dword [esi + 0x378], 1
lea eax, [ecx + eax*4]
mov dword [esi + 0x30], eax
xor eax, eax
nop word cs:[eax + eax]
nop
mov edx, dword [ecx]
mov dword [esi + 0x10], ecx
mov dword [esi + 0x50], eax
mov byte [esi + 7], 1
lea ecx, [esi + 0x250]
add edx, 8
push dword [esi + 0x180]
call fcn.005abf30
add esp, 4
cmp dword [esi + 0x250], 0
jne 0x5a7271
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 0x50]
add ecx, 4
inc eax
cmp ecx, dword [esi + 0x30]
jne 0x5a71f0
mov ecx, dword [esi + 0x2c]
mov eax, dword [esi + 0x80]
movsd xmm0, qword [ecx + 0x10]
mov edx, dword [eax + 0x4c]
movsd qword [esi + 0x298], xmm0
movsd xmm0, qword [ecx]
movsd xmm1, qword [ecx + 8]
movsd qword [esi + 0x290], xmm1
movsd qword [esi + 0x288], xmm0
movsd xmm2, qword [eax + 0x68]
movss xmm3, dword [eax + 0x70]
movss xmm4, dword [eax + 0x74]
jmp 0x5a731f
lea ecx, [esi + 0x254]
mov eax, dword [esi + 0x50]
mov edx, dword [esi + 0x6c]
mov byte [esi + 7], 1
movsd xmm2, qword [ecx + 0x18]
movsd xmm1, qword [ecx + 0x10]
movsd xmm0, qword [ecx + 0x20]
mov dword [esi + 0x1b0], eax
lea eax, [esi + 0x1b4]
movsd qword [eax + 0x18], xmm2
movsd qword [eax + 0x10], xmm1
movsd xmm2, qword [ecx]
movsd xmm1, qword [ecx + 8]
movsd qword [eax + 0x20], xmm0
lea ecx, [esi + 0xf0]
movsd qword [eax + 8], xmm1
movsd qword [eax], xmm2
lea eax, [esi + 0x1b0]
push eax
push dword [esi + 0x180]
call fcn.005b3f00
add esp, 8
lea eax, [esi + 0x254]
movss xmm3, dword [esi + 0x274]
movss xmm4, dword [esi + 0x278]
mov edx, dword [esi + 0x50]
movsd xmm2, qword [eax]
movsd xmm0, qword [eax + 0x10]
movsd xmm1, qword [eax + 8]
movsd qword [esi + 0x288], xmm2
movsd xmm2, qword [esi + 0x26c]
movsd qword [esi + 0x298], xmm0
movsd qword [esi + 0x290], xmm1
movsd xmm0, qword [esi + 0x298]
movsd xmm5, qword [esi + 0x288]
movsd xmm1, qword [esi + 0x290]
mov dword [esi + 0x50], edx
mov dword [esi + 0x1b0], edx
mov edx, dword [esi + 0x6c]
lea eax, [esi + 0x1b4]
movaps xmmword [esi + 0x30], xmm2
movss dword [esi + 0xd0], xmm3
movaps xmmword [esi + 0x10], xmm4
mov byte [esi + 7], 1
lea ecx, [esi + 0xf0]
movsd qword [eax + 0x10], xmm0
movsd qword [eax + 8], xmm1
movsd qword [eax], xmm5
lea eax, [esi + 0x1b0]
movlps qword [esi + 0x1cc], xmm2
movss dword [esi + 0x1d4], xmm3
movss dword [esi + 0x1d8], xmm4
push eax
push dword [esi + 0x180]
call fcn.005b3f00
add esp, 8
movsd xmm0, qword [esi + 0x288]
movq xmm1, qword [esi + 0x290]
mov ebx, dword [esi + 0x80]
movaps xmm2, xmmword [esi + 0x30]
movss xmm3, dword [esi + 0xd0]
mov ecx, dword [esi + 0x50]
movsd qword [esi + 0xf0], xmm0
movsd xmm0, qword [esi + 0x298]
movq qword [esi + 0xf8], xmm1
movsd qword [esi + 0x100], xmm0
movaps xmm0, xmmword [esi + 0x10]
mov edx, dword [ebx + 0x48]
movss dword [esi + 0x10], xmm0
movsd xmm0, qword [esi + 0x100]
movsd xmm4, qword [esi + 0xf0]
movsd xmm1, qword [esi + 0xf8]
cmp ecx, edx
movsd qword [esi + 0x248], xmm0
movsd qword [esi + 0x240], xmm1
movsd qword [esi + 0x238], xmm4
jae 0x5aadb5
mov eax, dword [ebx + 0x40]
movsd xmm0, qword [esi + 0x248]
movsd xmm4, qword [esi + 0x238]
movsd xmm1, qword [esi + 0x240]
cmp word [esi + 0x1f0], 1
mov eax, dword [eax + ecx*4]
movsd qword [esi + 0x100], xmm0
movsd qword [esi + 0xf8], xmm1
movsd qword [esi + 0xf0], xmm4
jne 0x5a75a0
movss xmm0, dword [eax + 0x58]
mov ecx, dword [eax + 8]
mov dword [esi + 0x50], eax
mov eax, dword [eax + 0xc]
movss dword [esi + 0xd0], xmm3
movaps xmmword [esi + 0x30], xmm2
orpd xmm0, xmmword [0x7259c0]
mov edx, dword [eax + 8]
mov byte [esi + 7], 1
mov dword [esi + 0x378], 1
subsd xmm0, qword [0x725628]
dec edx
and edx, 0xfffffff8
lea ecx, [edx + ecx + 8]
movapd xmmword [esi + 0x1f0], xmm0
push ecx
call dword [eax + 0x14]
add esp, 4
fstp dword [esi + 0x364]
mov ecx, dword [esi + 0x50]
movss xmm0, dword [esi + 0x364]
mov eax, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
movss dword [esi + 8], xmm0
mov edx, dword [ecx + 8]
mov byte [esi + 7], 1
dec edx
and edx, 0xfffffff8
lea eax, [edx + eax + 8]
push eax
call dword [ecx + 0x18]
add esp, 4
fstp dword [esi + 0x360]
mov eax, dword [esi + 0x50]
movss xmm0, dword [esi + 0x360]
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
movss dword [esi + 0x17c], xmm0
mov edx, dword [eax + 8]
mov byte [esi + 7], 1
dec edx
and edx, 0xfffffff8
lea ecx, [edx + ecx + 8]
push dword [esi + 0x10]
push dword [esi + 0x190]
push ecx
call dword [eax + 0x38]
add esp, 0xc
fstp dword [esi + 0x35c]
movss xmm1, dword [esi + 8]
movaps xmm0, xmmword [esi + 0x1f0]
mov eax, dword [esi + 0x50]
mov ecx, dword [esi + 0x160]
mov ebx, dword [esi + 0x80]
movaps xmm2, xmmword [esi + 0x30]
movss xmm3, dword [esi + 0xd0]
subss xmm1, dword [esi + 0x17c]
cvtsd2ss xmm0, xmm0
divss xmm0, xmm1
mulss xmm0, dword [esi + 0x35c]
divss xmm0, dword [eax + 0x68]
addss xmm0, dword [ecx + 0xc]
movss dword [ecx + 0xc], xmm0
mov edx, dword [ecx + 8]
movss xmm0, dword [ecx + 0xc]
cmp edx, dword [ecx + 4]
jne 0x5a6d60
jmp 0x5a75b7
mov ecx, dword [esi + 0x160]
mov edx, dword [ecx + 8]
movss xmm0, dword [ecx + 0xc]
cmp edx, dword [ecx + 4]
jne 0x5a6d60
movss dword [esi + 0x50], xmm0
movss dword [esi + 0xd0], xmm3
movaps xmmword [esi + 0x30], xmm2
mov byte [esi + 7], 1
mov dword [esi + 0x378], 1
call fcn.005a6a50
mov ecx, dword [esi + 0x160]
mov edi, dword [esi + 0x80]
movaps xmm2, xmmword [esi + 0x30]
movss xmm3, dword [esi + 0xd0]
movss xmm0, dword [esi + 0x50]
mov edx, dword [ecx + 8]
jmp 0x5a6d62
mov eax, dword [esi + 0x9c]
jmp 0x5a6bd9
mov eax, dword [esi + 0xec]
mov ebx, dword [esi + 0x22c]
lea ecx, [0x89c29b]
mov dword [esi + 0x74], 8
mov dword [esi + 0x78], 0
mov dword [esi + 0x7c], 0
and ecx, 0xfffffffc
mov dword [esi + 0x31c], ecx
movss xmm0, dword [eax + 0x94]
mov eax, dword [esi + 0x230]
mov dword [esi + 0x238], ebx
mov dword [esi + 0x23c], eax
mov eax, 0x89c298
mov dword [esi + 0x240], ebx
movaps xmmword [esi + 0x180], xmm0
sub ecx, eax
mov eax, 0xd5
cmp ecx, 0xd5
cmovb eax, ecx
mov dword [esi + 0x9c], eax
mov eax, dword [esi + 0x234]
mov dword [esi + 0x160], eax
lea eax, [eax + eax*4]
lea eax, [ebx + eax*4]
mov dword [esi + 0x244], eax
mov dword [esi + 0x30], eax
mov eax, dword [ebp + 8]
mov dword [esi + 0x248], 0
movzx ecx, byte [eax + 0x14]
mov edx, dword [eax + 0x10]
movss xmm0, dword [eax + 0xc]
mov byte [esi + 0x17c], cl
mov ecx, dword [eax + 8]
movss dword [esi + 0x80], xmm0
mov dword [esi + 0x1ec], edx
mov dword [esi + 0x300], ecx
mov ecx, dword [eax + 0x2c]
mov eax, dword [eax + 0x24]
mov dword [esi + 0x228], ecx
lea ecx, [edx - 1]
mov dword [esi + 0x2c0], eax
mov dword [esi + 0x1f0], ecx
cmp ebx, dword [esi + 0x30]
jne 0x5a7727
mov ebx, dword [esi + 0x240]
jmp 0x5a9215
lea eax, [edi + edi*2]
shl eax, 5
add eax, dword [esi + 0x74]
push 0x60
lea ecx, [esi + 0xf0]
push ecx
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov ebx, dword [esi + 0x10]
inc edi
mov dword [esi + 0x7c], edi
cmp ebx, dword [esi + 0x30]
je 0x5a76ee
lea edi, [ebx + 0x14]
mov dword [esi + 0x240], edi
mov eax, dword [ebx]
test eax, eax
mov dword [esi + 0x50], eax
je 0x5a9212
mov ecx, dword [esi + 0x248]
mov edx, dword [ebx + 8]
mov eax, dword [ebx + 4]
movsd xmm0, qword [ebx + 0xc]
inc ecx
test edx, edx
mov dword [esi + 0x248], ecx
je 0x5a7875
mov ebx, dword [esi + 0x50]
mov dword [esi + 0x10], edi
imul edi, edx, 0x34
movss xmm1, dword [esi + 0x80]
movss xmm0, dword [edi + ebx - 0x30]
addss xmm0, dword [edi + ebx - 0x24]
ucomiss xmm1, xmm0
jb 0x5a79b7
cmp ecx, dword [esi + 0x160]
movss xmm1, dword [ebx + 4]
mov edi, dword [esi + 0x7c]
xorps xmm2, xmm2
lea ecx, [esi + 0xf4]
movaps xmmword [esi + 0xf0], xmm2
mov dword [ecx + 0x2c], 0xff800000
mov dword [ecx + 0x24], 0x7f800000
mov dword [ecx + 0x30], 0xff800000
mov dword [ecx + 0x28], 0x7f800000
mov dword [esi + 0x140], ebx
mov dword [esi + 0x144], eax
mov dword [esi + 0x148], edx
movss dword [esi + 0x130], xmm1
mov dword [esi + 0x134], 0
movss dword [esi + 0x138], xmm0
mov dword [esi + 0x13c], 0
mov dword [esi + 0x100], 4
mov dword [esi + 0x104], 0
mov dword [esi + 0x108], 0
mov dword [esi + 0x10c], 4
mov dword [esi + 0x110], 0
mov dword [esi + 0x114], 0
mov dword [esi + 0x128], 0
mov dword [esi + 0x12c], 0
setne byte [esi + 0x14c]
cmp edi, dword [esi + 0x78]
jne 0x5a7700
lea ecx, [esi + 0x74]
mov edx, edi
mov dword [esi + 0x200], eax
mov dword [esi + 0x378], 0xa
call fcn.005a69a0
mov edi, dword [esi + 0x7c]
jmp 0x5a7700
cmp ecx, dword [esi + 0x160]
mov edi, dword [esi + 0x7c]
xorps xmm2, xmm2
movaps xmm1, xmm0
mov dword [esi + 0x200], eax
lea eax, [esi + 0xf4]
addps xmm1, xmm2
movaps xmmword [esi + 0xf0], xmm2
mov dword [eax + 0x2c], 0xff800000
mov dword [eax + 0x24], 0x7f800000
mov dword [eax + 0x30], 0xff800000
mov dword [eax + 0x28], 0x7f800000
mov dword [esi + 0x140], 4
mov dword [esi + 0x144], 0
mov dword [esi + 0x148], 0
movss dword [esi + 0x130], xmm0
mov dword [esi + 0x134], 0
movlps qword [esi + 0x138], xmm1
mov dword [esi + 0x100], 4
mov dword [esi + 0x104], 0
mov dword [esi + 0x108], 0
mov dword [esi + 0x10c], 4
mov dword [esi + 0x110], 0
mov dword [esi + 0x114], 0
mov dword [esi + 0x128], 0
mov dword [esi + 0x12c], 0
setne byte [esi + 0x14c]
cmp edi, dword [esi + 0x78]
jne 0x5a7960
lea ecx, [esi + 0x74]
mov edx, edi
mov dword [esi + 0x378], 0x10
call fcn.005a69a0
mov edi, dword [esi + 0x7c]
lea eax, [edi + edi*2]
shl eax, 5
add eax, dword [esi + 0x74]
push 0x60
lea ecx, [esi + 0xf0]
push ecx
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov ecx, dword [esi + 0x50]
inc edi
mov dword [esi + 0x7c], edi
cmp dword [esi + 0x200], 0
je 0x5a799a
push ecx
push 0
push dword [0x919820]
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [esi + 0x244]
mov ebx, dword [esi + 0x240]
mov dword [esi + 0x30], eax
cmp ebx, dword [esi + 0x30]
jne 0x5a7727
jmp 0x5a76ee
mov dword [esi + 0x1b0], 0
mov dword [esi + 0x1b8], 0
mov dword [esi + 0x1c0], 0
mov dword [esi + 0x1c8], 0
mov dword [esi + 0x1d0], 0
mov dword [esi + 0x1d8], 0
mov dword [esi + 0xc0], edx
mov dword [esi + 0x200], eax
xorps xmm2, xmm2
xor eax, eax
xor edx, edx
mov dword [esi + 0x1a8], edi
mov dword [esi + 0x64], ecx
mov dword [esi + 0x2c], 0
mov dword [esi + 0x6c], 0
mov dword [esi + 0xd0], 0
mov dword [esi + 0x190], 0
movss xmm0, dword [ebx + 4]
xor ebx, ebx
movss dword [esi + 0x68], xmm0
cmp dword [esi + 0xc0], edx
jbe 0x5a8950
nop dword [eax]
mov ecx, dword [esi + 0xd0]
cmp dword [esi + 0x1f0], ecx
jb 0x5a8950
mov edi, dword [esi + 0x50]
imul ecx, edx, 0x34
mov dword [esi + 0x30], edx
mov dword [esi + 0xa0], ecx
movss xmm0, dword [edi + ecx + 4]
addss xmm0, dword [edi + ecx + 0x10]
subss xmm0, xmm2
ucomiss xmm0, dword [esi + 0x80]
jbe 0x5a7f60
movss xmm1, dword [esi + 0x68]
xorps xmm0, xmm0
movss dword [esi + 0x210], xmm2
ucomiss xmm1, xmm0
jbe 0x5a7ab9
cmp byte [esi + 0x17c], 0
je 0x5a7e0e
cmp eax, 1
jne 0x5a7e2a
cmp byte [esi + 0x17c], 0
je 0x5a7acc
test bl, 1
jne 0x5a7b1d
jmp 0x5a7f60
lea ecx, [esi + 0x1b0]
call fcn.005ab7b0
mov edi, edx
mov edx, dword [esi + 0x6c]
mov ecx, eax
or ecx, edx
test edx, edx
sete dl
test eax, eax
jne 0x5a7af4
xor eax, eax
mov al, dl
mov edi, dword [esi + eax*8 + 0x1cc]
or ecx, dword [esi + 0x2c]
mov eax, dword [esi + 0x10]
movss xmm2, dword [esi + 0x210]
mov dword [esi + 0x2c], 0
setne cl
cmovne eax, edi
or bl, cl
mov dword [esi + 0x10], eax
test bl, 1
je 0x5a7f55
mov eax, dword [esi + 0x10]
cmp eax, 0xffffffff
je 0x5ab194
lea edx, [eax + 1]
cmp edx, dword [esi + 0x190]
jb 0x5ab1b1
mov dword [esi + 8], edx
mov edx, dword [esi + 0xc0]
cmp eax, edx
jae 0x5ab141
imul ecx, dword [esi + 8], 0x34
mov eax, dword [esi + 0x50]
imul ebx, dword [esi + 0x190], 0x34
add ebx, eax
lea edi, [eax + ecx]
mov dword [esi + 0x2c], ecx
mov ecx, 0x4ec4ec4f
sub edi, ebx
mov eax, edi
mul ecx
mov ecx, dword [esi + 8]
mov eax, 4
cmp ecx, dword [esi + 0x190]
je 0x5a7bda
cmp edi, 0x8000001c
setb al
jae 0x5ab1fc
test edi, edi
mov byte [esi + 0x6c], al
js 0x5ab214
movzx eax, byte [0x919aa5]
mov eax, dword [0x919820]
mov dword [esi + 0x10], edx
test eax, eax
jne 0x5a7bba
call dword [sym.imp.kernel32.dll_GetProcessHeap]
test eax, eax
je 0x5ab1d7
mov dword [0x919820], eax
push edi
push 0
push eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
movss xmm2, dword [esi + 0x210]
mov edx, dword [esi + 0x10]
mov ecx, dword [esi + 8]
test eax, eax
je 0x5ab1d7
shr edx, 4
cmp dword [esi + 0x190], ecx
mov dword [esi + 0xf0], eax
mov edi, edx
mov dword [esi + 0xf4], edx
mov dword [esi + 0xf8], 0
je 0x5ab164
xor ecx, ecx
mov edx, 8
mov dword [esi + 0x10], edi
nop dword [eax + eax]
movss xmm0, dword [ebx + edx - 4]
mov edi, dword [ebx + edx - 8]
inc ecx
subss xmm0, xmm2
mov dword [eax + edx - 8], edi
movss dword [eax + edx - 4], xmm0
movsd xmm0, qword [ebx + edx]
movsd xmm1, qword [ebx + edx + 8]
movsd qword [eax + edx], xmm0
movsd qword [eax + edx + 8], xmm1
movsd xmm0, qword [ebx + edx + 0x10]
movsd qword [eax + edx + 0x10], xmm0
movsd xmm0, qword [ebx + edx + 0x18]
movsd qword [eax + edx + 0x18], xmm0
movsd xmm0, qword [ebx + edx + 0x20]
movsd qword [eax + edx + 0x20], xmm0
mov edi, dword [ebx + edx + 0x28]
mov dword [eax + edx + 0x28], edi
add edx, 0x34
cmp dword [esi + 0x10], ecx
jne 0x5a7c10
mov edi, dword [esi + 0xf0]
xorps xmm2, xmm2
lea eax, [esi + 0xf4]
movss xmm0, dword [edi + edx - 0x38]
movss xmm1, dword [edi + 4]
mov dword [esi + 0x10], edi
addss xmm0, dword [edi + edx - 0x2c]
mov edx, dword [esi + 0xf4]
movaps xmmword [esi + 0xf0], xmm2
mov dword [eax + 0x2c], 0xff800000
mov dword [eax + 0x24], 0x7f800000
mov dword [eax + 0x30], 0xff800000
mov dword [eax + 0x28], 0x7f800000
mov dword [esi + 0x140], edi
mov edi, dword [esi + 0x7c]
cmp edi, dword [esi + 0x78]
mov dword [esi + 0x144], edx
mov dword [esi + 0x148], ecx
movss dword [esi + 0x130], xmm1
mov dword [esi + 0x134], 0
movss dword [esi + 0x138], xmm0
mov dword [esi + 0x13c], 0
mov dword [esi + 0x100], 4
mov dword [esi + 0x104], 0
mov dword [esi + 0x108], 0
mov dword [esi + 0x10c], 4
mov dword [esi + 0x110], 0
mov dword [esi + 0x114], 0
mov dword [esi + 0x128], 0
mov dword [esi + 0x12c], 0
mov dword [esi + 0x190], edx
mov byte [esi + 0x14c], 0
jne 0x5a7d71
lea ecx, [esi + 0x74]
mov edx, edi
mov dword [esi + 0x378], 0xf
call fcn.005a69a0
mov edi, dword [esi + 0x7c]
lea eax, [edi + edi*2]
mov ebx, dword [esi + 0xa0]
shl eax, 5
add eax, dword [esi + 0x74]
push 0x60
lea ecx, [esi + 0xf0]
push ecx
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov edx, dword [esi + 0xc0]
mov ecx, dword [esi + 8]
inc edi
mov dword [esi + 0x7c], edi
cmp ecx, edx
jae 0x5aaec3
mov edi, dword [esi + 0x2c]
mov eax, dword [esi + 0x50]
inc dword [esi + 0xd0]
mov dword [esi + 0x2c], 0
mov dword [esi + 0x6c], 0
mov dword [esi + 0x190], ecx
movss xmm2, dword [eax + edi + 4]
mov dword [esi + 0x1b0], 0
mov dword [esi + 0x1b8], 0
mov dword [esi + 0x1c0], 0
mov dword [esi + 0x1c8], 0
mov dword [esi + 0x1d0], 0
mov dword [esi + 0x1d8], 0
jmp 0x5a7f6c
lea ecx, [esi + 0x1b0]
call fcn.005ab7b0
movss xmm2, dword [esi + 0x210]
cmp eax, 1
je 0x5a7ab9
mov edi, dword [esi + 0x7c]
xorps xmm0, xmm0
lea eax, [esi + 0xf4]
movaps xmmword [esi + 0xf0], xmm0
movss xmm0, dword [esi + 0x68]
mov dword [eax + 0x2c], 0xff800000
mov dword [eax + 0x24], 0x7f800000
mov dword [eax + 0x30], 0xff800000
mov dword [eax + 0x28], 0x7f800000
mov dword [esi + 0x140], 4
mov dword [esi + 0x144], 0
mov dword [esi + 0x148], 0
cmp edi, dword [esi + 0x78]
movss dword [esi + 0x130], xmm0
mov dword [esi + 0x134], 0
movss dword [esi + 0x138], xmm0
mov dword [esi + 0x13c], 0
mov dword [esi + 0x100], 4
mov dword [esi + 0x104], 0
mov dword [esi + 0x108], 0
mov dword [esi + 0x10c], 4
mov dword [esi + 0x110], 0
mov dword [esi + 0x114], 0
mov dword [esi + 0x128], 0
mov dword [esi + 0x12c], 0
mov byte [esi + 0x14c], 0
jne 0x5a7f13
lea ecx, [esi + 0x74]
mov edx, edi
mov dword [esi + 0x378], 0xd
call fcn.005a69a0
mov edi, dword [esi + 0x7c]
lea eax, [edi + edi*2]
mov ebx, dword [esi + 0xa0]
shl eax, 5
add eax, dword [esi + 0x74]
push 0x60
lea ecx, [esi + 0xf0]
push ecx
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
movss xmm2, dword [esi + 0x210]
mov edx, dword [esi + 0xc0]
inc edi
xorps xmm0, xmm0
mov dword [esi + 0x7c], edi
addss xmm2, dword [esi + 0x68]
movss dword [esi + 0x68], xmm0
jmp 0x5a7f6c
mov dword [esi + 0x6c], 0
nop dword [eax]
mov edx, dword [esi + 0xc0]
mov ebx, dword [esi + 0xa0]
mov eax, dword [esi + 0x30]
add ebx, dword [esi + 0x50]
mov edi, edx
lea ecx, [eax + 1]
sub edi, eax
jb 0x5ab0fc
je 0x5aae9f
mov edx, dword [ebx]
lea eax, [edx - 9]
cmp eax, 5
jae 0x5a7fe0
mov edx, dword [esi + 0x30]
mov dword [esi + 0x1b0], 1
lea eax, [esi + 0x1b4]
mov dword [eax], edx
mov dword [esi + 0x1d8], 1
mov dword [esi + 0x1dc], edx
mov dword [esi + 0x10], edx
mov eax, 1
mov bl, 1
mov edx, ecx
cmp dword [esi + 0xc0], edx
ja 0x5a7a50
jmp 0x5a8950
cmp edx, 0x20
je 0x5a7f8f
cmp edx, 0x80
mov dword [esi + 0x10], edx
jb 0x5a8075
shr edx, 8
cmp edx, 0x1f
jg 0x5a801b
test edx, edx
je 0x5a803b
cmp edx, 0x16
mov edx, dword [esi + 0x10]
jne 0x5a8075
cmp edx, 0x1680
sete al
cmp edx, 0xa0
jne 0x5a806d
jmp 0x5a8075
cmp edx, 0x20
je 0x5a8054
cmp edx, 0x30
mov edx, dword [esi + 0x10]
jne 0x5a8075
cmp edx, 0x3000
sete al
cmp edx, 0xa0
jne 0x5a806d
jmp 0x5a8075
mov edx, dword [esi + 0x10]
movzx eax, dl
movzx eax, byte [eax + 0x8c7c38]
and al, 1
cmp edx, 0xa0
jne 0x5a806d
jmp 0x5a8075
mov edx, dword [esi + 0x10]
movzx eax, dl
movzx eax, byte [eax + 0x8c7c38]
and al, 2
shr al, 1
cmp edx, 0xa0
je 0x5a8075
test al, al
jne 0x5a7f8f
movd xmm0, edx
movdqa xmm1, xmmword [0x726dd0]
pshufd xmm0, xmm0, 0
paddd xmm0, xmmword [0x726dc0]
pxor xmm0, xmmword [0x725630]
pcmpgtd xmm1, xmm0
movmskps eax, xmm1
test eax, eax
jne 0x5a80d4
lea eax, [edx - 0x30a0]
cmp eax, 0x60
jb 0x5a80d4
cmp edx, 0x2d
jne 0x5a81c2
mov edx, dword [esi + 0x30]
mov dword [esi + 0x1c8], 1
mov dword [esi + 0x6c], 1
lea eax, [esi + 0x1cc]
jmp 0x5a7fa2
mov edx, dword [esi + 0x30]
cmp edi, 1
mov dword [esi + 0x2d0], ecx
mov dword [esi + 0x2f0], edi
je 0x5a85ef
mov eax, dword [ebx + 0x34]
mov dword [esi + 0xa0], ebx
cmp eax, 0x80
jae 0x5a8210
xor ecx, ecx
cmp dword [esi + 0x9c], 0
je 0x5a8159
cmp dword [esi + 0x31c], 0x89c298
je 0x5a8159
mov edx, dword [esi + 0x30]
mov ebx, dword [esi + 0xa0]
xor ecx, ecx
nop word cs:[eax + eax]
nop dword [eax]
cmp byte [ecx + 0x89c298], al
je 0x5a81d9
inc ecx
cmp dword [esi + 0x9c], ecx
jne 0x5a8130
mov edi, dword [esi + 0x9c]
cmp edi, 0xcd
mov ecx, edi
ja 0x5a8296
movzx edx, al
imul edx, edx, 0x1010101
nop word cs:[eax + eax]
nop dword [eax]
mov edi, dword [ecx + 0x89c298]
xor edi, edx
mov ebx, edi
add edi, 0xfefefeff
not ebx
and edi, ebx
test edi, 0x80808080
jne 0x5a8294
mov edi, dword [ecx + 0x89c29c]
xor edi, edx
mov ebx, edi
add edi, 0xfefefeff
not ebx
and edi, ebx
test edi, 0x80808080
jne 0x5a8294
lea edi, [ecx + 8]
cmp ecx, 0xc5
mov ecx, edi
jbe 0x5a8170
jmp 0x5a8296
lea eax, [edx - 0x21]
mov edx, dword [esi + 0x30]
mov dword [esi + 0x2f0], edi
mov dword [esi + 0x2d0], ecx
cmp eax, 0xf
jb 0x5a81f4
mov eax, dword [esi + 0x10]
mov ecx, eax
add eax, 0xffffffc6
cmp eax, 7
jb 0x5a81f4
mov eax, ecx
lea eax, [ecx - 0x5b]
cmp eax, 6
jae 0x5a863c
mov dword [esi + 0x1d0], 1
mov dword [esi + 0x2c], 1
lea eax, [esi + 0x1d4]
jmp 0x5a85ff
cmp eax, 0x800
mov ecx, eax
mov dword [esi + 0x250], 0
movss dword [esi + 0x210], xmm2
jae 0x5a8255
shr ecx, 6
and al, 0x3f
mov dword [esi + 0x378], 9
or cl, 0xc0
or al, 0x80
mov byte [esi + 0x250], cl
mov byte [esi + 0x251], al
mov eax, 2
jmp 0x5a8311
cmp eax, 0x10000
jae 0x5a82ca
shr ecx, 0xc
mov dword [esi + 0x378], 9
or cl, 0xe0
mov byte [esi + 0x250], cl
mov ecx, eax
and al, 0x3f
shr ecx, 6
or al, 0x80
and cl, 0x3f
or cl, 0x80
mov byte [esi + 0x251], cl
mov byte [esi + 0x252], al
mov eax, 3
jmp 0x5a8311
mov edi, ecx
mov edx, dword [esi + 0x30]
mov ebx, dword [esi + 0xa0]
cmp edi, 0xd5
je 0x5a85ef
nop dword [eax + eax]
cmp byte [edi + 0x89c298], al
je 0x5a81d9
inc edi
cmp edi, 0xd5
jne 0x5a82b0
jmp 0x5a85ef
shr ecx, 0x12
mov dword [esi + 0x378], 9
or cl, 0xf0
mov byte [esi + 0x250], cl
mov ecx, eax
shr ecx, 0xc
and cl, 0x3f
or cl, 0x80
mov byte [esi + 0x251], cl
mov ecx, eax
and al, 0x3f
shr ecx, 6
or al, 0x80
and cl, 0x3f
or cl, 0x80
mov byte [esi + 0x252], cl
mov byte [esi + 0x253], al
mov eax, 4
mov byte [esi + 6], 1
lea ecx, [esi + 0xf0]
mov edx, 0x89c298
push eax
lea eax, [esi + 0x250]
push eax
push 0xd5
call fcn.0042f9e0
add esp, 0xc
mov eax, dword [esi + 0x124]
cmp dword [esi + 0xf0], 0
mov edi, dword [esi + 0x120]
movss xmm2, dword [esi + 0x210]
mov dword [esi + 8], eax
je 0x5a85dd
mov ecx, dword [esi + 0x12c]
mov edx, dword [esi + 0x10c]
mov dword [esi + 0x98], edi
mov dword [esi + 0x2a0], ecx
lea ecx, [edx + ecx - 1]
cmp ecx, eax
jae 0x5a85ec
mov edi, dword [esi + 0xf8]
mov eax, dword [esi + 0x128]
mov ebx, dword [esi + 0x2a0]
mov dword [esi + 0x4c], edx
mov edx, dword [esi + 0x114]
mov dword [esi + 0x1e8], edi
mov edi, dword [esi + 0xfc]
mov dword [esi + 0x1ac], eax
lea eax, [ebx - 1]
cmp edx, 0xffffffff
mov dword [esi + 0x2b4], eax
mov eax, dword [esi + 0x108]
mov dword [esi + 0x1e4], edi
mov edi, dword [esi + 0x100]
mov dword [esi + 0x2ec], eax
mov dword [esi + 0x1a4], edi
je 0x5a869d
mov dword [esi + 0x15c], edx
mov edx, ebx
sub edx, eax
lea eax, [ebx + ebx*2 - 1]
mov dword [esi + 0x2bc], edx
mov edx, dword [esi + 0x4c]
mov dword [esi + 0x2b0], eax
mov eax, 1
sub eax, edi
mov dword [esi + 0x2b8], eax
mov eax, dword [esi + 0x98]
mov edi, 1
mov dword [esi + 0x4c], edx
movzx ecx, byte [eax + ecx]
xor eax, eax
shld eax, edi, cl
shl edi, cl
test cl, 0x20
mov ecx, 0
cmovne eax, edi
cmovne edi, ecx
and eax, dword [esi + 0x1e4]
and edi, dword [esi + 0x1e8]
or edi, eax
je 0x5a844f
mov eax, dword [esi + 0x4c]
mov dword [esi + 0x178], eax
mov eax, dword [esi + 0x15c]
jmp 0x5a84fb
mov eax, dword [esi + 0x4c]
mov ecx, dword [esi + 0x2a0]
add eax, ecx
mov ecx, dword [esi + 0x2b4]
mov dword [esi + 0x178], eax
add ecx, eax
cmp ecx, dword [esi + 8]
jae 0x5a85ec
mov edi, dword [esi + 0x98]
xor ebx, ebx
xor eax, eax
movzx ecx, byte [edi + ecx]
mov edi, 1
shld ebx, edi, cl
shl edi, cl
test cl, 0x20
cmovne ebx, edi
cmovne edi, eax
and ebx, dword [esi + 0x1e4]
and edi, dword [esi + 0x1e8]
or edi, ebx
je 0x5a84a6
xor eax, eax
jmp 0x5a84fb
mov edx, dword [esi + 0x4c]
add edx, dword [esi + 0x2b0]
cmp edx, dword [esi + 8]
jae 0x5a85ec
mov ecx, dword [esi + 0x2a0]
xor ebx, ebx
mov edi, 1
xor eax, eax
add dword [esi + 0x178], ecx
mov ecx, dword [esi + 0x98]
movzx ecx, byte [ecx + edx]
shld ebx, edi, cl
shl edi, cl
test cl, 0x20
cmovne ebx, edi
cmovne edi, eax
add edx, dword [esi + 0x2a0]
and ebx, dword [esi + 0x1e4]
and edi, dword [esi + 0x1e8]
or edi, ebx
je 0x5a84af
mov ecx, dword [esi + 0x1a4]
mov dword [esi + 0x15c], eax
cmp ecx, eax
cmova eax, ecx
mov dword [esi + 0x4c], eax
cmp eax, dword [esi + 0x2a0]
mov eax, dword [esi + 0x178]
jae 0x5a8554
mov ecx, dword [esi + 0x98]
mov edx, dword [esi + 0x4c]
lea ebx, [ecx + eax]
nop dword [eax]
lea edi, [eax + edx]
cmp edi, dword [esi + 8]
jae 0x5aaf92
mov ecx, dword [esi + 0x1ac]
movzx ecx, byte [ecx + edx]
cmp cl, byte [ebx + edx]
jne 0x5a85b5
inc edx
cmp dword [esi + 0x2a0], edx
jne 0x5a8530
mov ebx, dword [esi + 0x1a4]
nop word [eax + eax]
cmp dword [esi + 0x15c], ebx
mov edx, dword [esi + 0x30]
jae 0x5a8945
dec ebx
cmp ebx, dword [esi + 0x2a0]
jae 0x5aaf14
mov edx, dword [esi + 8]
lea ecx, [ebx + eax]
cmp ecx, edx
jae 0x5aafe6
mov edx, dword [esi + 0x1ac]
mov edi, dword [esi + 0x98]
movzx edx, byte [edx + ebx]
cmp dl, byte [edi + ecx]
je 0x5a8560
add eax, dword [esi + 0x2ec]
mov ecx, dword [esi + 0x2bc]
mov edx, eax
mov dword [esi + 0x15c], ecx
jmp 0x5a85c9
add eax, dword [esi + 0x2b8]
mov dword [esi + 0x15c], 0
add eax, edx
mov edx, eax
mov eax, dword [esi + 0x2b4]
lea ecx, [edx + eax]
cmp ecx, dword [esi + 8]
jb 0x5a8404
jmp 0x5a85ec
cmp byte [esi + 0xfe], 0
mov ebx, dword [esi + 0xa0]
je 0x5a860a
mov edx, dword [esi + 0x30]
mov dword [esi + 0x1b8], 1
lea eax, [esi + 0x1bc]
mov ecx, dword [esi + 0x2d0]
jmp 0x5a7fa2
mov eax, dword [esi + 0xf4]
movzx ecx, byte [esi + 0xfc]
mov edx, dword [esi + 8]
test eax, eax
je 0x5a883a
mov edx, dword [esi + 8]
sub edx, eax
jbe 0x5a8834
cmp byte [edi + eax], 0xc0
jge 0x5a883a
jmp 0x5ab2d6
add ecx, 0xffffff85
cmp ecx, 4
jb 0x5a81f4
cmp dword [esi + 0x2f0], 1
jbe 0x5a8692
mov eax, dword [ebx + 0x34]
movdqa xmm1, xmmword [0x726dd0]
movd xmm0, eax
pshufd xmm0, xmm0, 0
paddd xmm0, xmmword [0x726dc0]
pxor xmm0, xmmword [0x725630]
pcmpgtd xmm1, xmm0
movmskps ecx, xmm1
test ecx, ecx
jne 0x5a88a7
add eax, 0xffffcf60
cmp eax, 0x5f
jbe 0x5a88a7
mov ecx, dword [esi + 0x2d0]
jmp 0x5a7fa4
mov eax, dword [esi + 0x98]
mov edx, ebx
lea ebx, [edi - 1]
cmp ebx, edx
lea edi, [edx + edx - 1]
setb byte [esi + 0x2b0]
mov dword [esi + 0x2bc], edi
lea eax, [eax + edx*2 - 1]
mov edx, dword [esi + 0x4c]
mov dword [esi + 0x2b8], eax
mov eax, dword [esi + 0x98]
movzx ecx, byte [eax + ecx]
xor eax, eax
mov edi, 1
shld eax, edi, cl
shl edi, cl
test cl, 0x20
mov ecx, 0
cmovne eax, edi
cmovne edi, ecx
and eax, dword [esi + 0x1e4]
and edi, dword [esi + 0x1e8]
or edi, eax
jne 0x5a871f
mov eax, dword [esi + 0x2bc]
add eax, edx
cmp eax, dword [esi + 8]
jae 0x5a85ec
mov eax, dword [esi + 0x2b8]
movzx ecx, byte [eax + edx]
add edx, dword [esi + 0x2a0]
jmp 0x5a86d2
mov eax, dword [esi + 0x2a0]
mov dword [esi + 0x4c], edx
mov edx, dword [esi + 0x30]
mov ecx, dword [esi + 8]
cmp dword [esi + 0x1a4], eax
jae 0x5a8793
mov edx, dword [esi + 0x4c]
mov eax, edx
not eax
mov dword [esi + 0x178], eax
mov eax, dword [esi + 0x98]
add eax, edx
mov dword [esi + 0x15c], eax
mov eax, dword [esi + 0x1a4]
mov edx, dword [esi + 0x4c]
lea edi, [edx + eax]
cmp edi, ecx
jae 0x5ab006
mov edx, dword [esi + 0x1ac]
mov ecx, dword [esi + 0x15c]
movzx edx, byte [edx + eax]
cmp dl, byte [ecx + eax]
jne 0x5a8813
inc eax
dec dword [esi + 0x178]
mov edx, dword [esi + 0x30]
mov ecx, dword [esi + 8]
cmp dword [esi + 0x2a0], eax
jne 0x5a8757
test byte [esi + 0x2b0], 1
je 0x5a8938
mov ecx, dword [esi + 0x4c]
lea eax, [ecx - 1]
mov dword [esi + 0x15c], eax
mov eax, dword [esi + 0x98]
lea eax, [eax + ecx - 1]
mov dword [esi + 0x178], eax
mov eax, dword [esi + 0x1a4]
mov edi, eax
nop word cs:[eax + eax]
nop
sub edi, 1
jb 0x5a8945
mov ecx, dword [esi + 0x15c]
lea edx, [ecx + eax]
mov ecx, dword [esi + 8]
cmp edx, ecx
jae 0x5aafd3
mov ecx, dword [esi + 0x1ac]
movzx edx, byte [ecx + eax - 1]
mov ecx, dword [esi + 0x178]
cmp dl, byte [ecx + eax]
mov edx, dword [esi + 0x30]
mov eax, edi
je 0x5a87d0
mov edx, dword [esi + 0x4c]
add edx, dword [esi + 0x2ec]
jmp 0x5a881b
mov edx, dword [esi + 0x178]
neg edx
mov eax, dword [esi + 0x2b4]
mov edi, dword [esi + 8]
lea ecx, [edx + eax]
cmp ecx, edi
jb 0x5a86c8
jmp 0x5a85ec
jne 0x5ab2d6
test edx, edx
je 0x5a8891
mov ch, byte [edi + eax]
movzx edx, ch
test ch, ch
jns 0x5a88cd
movzx ebx, byte [edi + eax + 1]
and edx, 0x1f
and ebx, 0x3f
cmp ch, 0xe0
jb 0x5a889a
mov dword [esi + 0x98], edi
movzx edi, byte [edi + eax + 2]
shl ebx, 6
and edi, 0x3f
or edi, ebx
cmp ch, 0xf0
jb 0x5a88bc
mov ebx, dword [esi + 0x98]
and edx, 7
shl edi, 6
shl edx, 0x12
movzx ebx, byte [ebx + eax + 3]
and ebx, 0x3f
or ebx, edi
or edx, ebx
jmp 0x5a88c1
test cl, cl
jne 0x5a88d1
jmp 0x5a85ec
shl edx, 6
or edx, ebx
mov ebx, dword [esi + 0xa0]
jmp 0x5a88cd
lea eax, [esi + 0x1c4]
mov dword [esi + 0x1c0], 1
jmp 0x5a85ff
shl edx, 0xc
or edx, edi
mov ebx, dword [esi + 0xa0]
mov edi, dword [esi + 0x98]
test cl, cl
je 0x5a88d9
mov edx, dword [esi + 0x30]
jmp 0x5a81d9
cmp edx, 0x110000
je 0x5a85ec
mov ecx, 1
cmp edx, 0x80
jb 0x5a890d
mov ecx, 2
cmp edx, 0x800
jb 0x5a890d
cmp edx, 0x10000
mov ecx, 4
sbb ecx, 0
add eax, ecx
je 0x5a8923
mov ecx, dword [esi + 8]
sub ecx, eax
jbe 0x5a8928
cmp byte [edi + eax], 0xc0
jge 0x5a892e
jmp 0x5ab2d6
mov ecx, dword [esi + 8]
jmp 0x5a892e
jne 0x5ab2d6
test ecx, ecx
je 0x5a88d1
cmp byte [edi + eax], 0
jmp 0x5a88d1
cmp dword [esi + 0x1a4], 0
jne 0x5aaf14
mov ebx, dword [esi + 0xa0]
jmp 0x5a81d9
mov ecx, dword [esi + 0xc0]
cmp dword [esi + 0x190], ecx
jae 0x5a8f74
mov eax, dword [esi + 0x1ec]
test eax, eax
je 0x5a8f85
cmp dword [esi + 0xd0], eax
jne 0x5a8f85
mov edx, dword [esi + 0x7c]
mov ecx, dword [esi + 0x74]
mov edi, dword [esi + 0x64]
mov eax, edx
mov dword [esi + 8], ecx
sub eax, 1
jb 0x5a91d9
test ecx, ecx
mov ecx, dword [esi + 0x50]
je 0x5a91dc
cmp dword [esi + 0x300], 0x110000
je 0x5a91dc
mov ebx, dword [esi + 8]
lea eax, [eax + eax*2]
mov dword [esi + 0x6c], edx
shl eax, 5
mov ebx, dword [ebx + eax + 0x50]
mov dword [esi + 0x210], ebx
mov ebx, dword [esi + 8]
mov ebx, dword [ebx + eax + 0x58]
mov dword [esi + 0x190], ebx
mov ebx, dword [esi + 8]
lea eax, [ebx + eax + 0x58]
mov dword [esi + 0x2c], ebx
mov dword [esi + 0x2a0], eax
mov eax, dword [esi + 0x190]
cmp eax, 1
mov dword [esi + 0x190], eax
ja 0x5a8f58
nop word cs:[eax + eax]
mov ebx, dword [esi + 0x210]
cmp eax, 1
mov dword [esi + 0xa0], 0
jne 0x5a91dc
mov ecx, dword [ebx + 0x30]
mov dword [esi + 0x378], 9
cmp ecx, dword [esi + 0x228]
jae 0x5aaef8
imul edx, ecx, 0x38
mov ecx, dword [esi + 0xec]
mov dword [esi + 0x30], ebx
mov byte [esi + 6], 1
add edx, dword [esi + 0x2c0]
call fcn.005a2a40
mov dword [esi + 0x10], eax
mov edx, dword [esi + 0x10]
cmp dword [esi + 0xa0], 0
movss xmm0, dword [edx + 0x7c]
mov eax, edx
movss dword [esi + 0x68], xmm0
je 0x5a8ad0
add eax, 0x48
cmp dword [edx + 0x48], 0
mov dword [esi + 0xc0], eax
je 0x5a8c65
mov eax, dword [esi + 0xa0]
lea ecx, [esi + 0xf0]
mov eax, dword [eax]
mov byte [esi + 6], 1
push eax
call fcn.005ad920
add esp, 4
mov eax, dword [esi + 0xc0]
mov ecx, dword [esi + 0xf0]
mov edx, dword [eax]
cmp ecx, edx
jae 0x5aafbd
movzx eax, word [esi + 0x118]
mov edx, dword [esi + 0x10]
mov dword [esi + 0x2c], eax
mov ax, 1
mov dword [esi + 0xd0], eax
jmp 0x5a8aed
add eax, 0x48
cmp dword [edx + 0x48], 0
mov dword [esi + 0xd0], 0
mov dword [esi + 0xc0], eax
je 0x5a8c60
mov eax, dword [esi + 0x30]
mov eax, dword [eax]
mov byte [esi + 6], 1
lea ecx, [esi + 0xf0]
push eax
call fcn.005ad920
add esp, 4
mov eax, dword [esi + 0xc0]
mov ecx, dword [esi + 0xf0]
mov edx, dword [eax]
cmp ecx, edx
jae 0x5aaf66
mov edx, dword [esi + 0x10]
mov edi, dword [esi + 0xa0]
mov eax, dword [edx + 0x40]
mov ecx, dword [eax + ecx*4]
add ecx, 8
test edi, edi
cmove ecx, edi
mov dword [esi + 0xa0], ecx
je 0x5a8c60
mov edi, dword [esi + 0xa0]
mov ecx, dword [edi + 4]
movss xmm0, dword [edi + 0x50]
mov eax, dword [edi]
mov edx, dword [ecx + 8]
orpd xmm0, xmmword [0x7259c0]
mov byte [esi + 6], 1
dec edx
subsd xmm0, qword [0x725628]
and edx, 0xfffffff8
lea eax, [edx + eax + 8]
movzx edx, word [esi + 0x118]
movapd xmmword [esi + 0x2d0], xmm0
mov dword [esi + 0xd0], edx
push eax
call dword [ecx + 0x14]
add esp, 4
fstp dword [esi + 0x354]
mov ecx, dword [esi + 0xa0]
movss xmm0, dword [esi + 0x354]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
movss dword [esi + 0x1ac], xmm0
mov edx, dword [ecx + 8]
mov byte [esi + 6], 1
dec edx
and edx, 0xfffffff8
lea eax, [edx + eax + 8]
push eax
call dword [ecx + 0x18]
add esp, 4
fstp dword [esi + 0x350]
mov eax, dword [esi + 0xa0]
movss xmm0, dword [esi + 0x350]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
movss dword [esi + 0x1a8], xmm0
mov edx, dword [eax + 8]
mov byte [esi + 6], 1
dec edx
and edx, 0xfffffff8
lea ecx, [edx + ecx + 8]
push dword [esi + 0xd0]
push dword [esi + 0x2c]
push ecx
call dword [eax + 0x38]
add esp, 0xc
fstp dword [esi + 0x34c]
movss xmm1, dword [esi + 0x1ac]
movaps xmm0, xmmword [esi + 0x2d0]
mov eax, dword [esi + 0xa0]
mov edi, dword [esi + 0x64]
mov ebx, dword [esi + 0x30]
mov edx, dword [esi + 0x10]
subss xmm1, dword [esi + 0x1a8]
cvtsd2ss xmm0, xmm0
divss xmm0, xmm1
mulss xmm0, dword [esi + 0x34c]
divss xmm0, dword [eax + 0x60]
mov ax, 1
mov dword [esi + 0xd0], eax
mov eax, dword [esi + 0x300]
jmp 0x5a8c85
xorps xmm0, xmm0
jmp 0x5a8c79
movzx eax, word [edx + 0x74]
xorps xmm0, xmm0
mov dword [esi + 0x2c], eax
mov ax, 1
mov dword [esi + 0xd0], eax
mov eax, dword [esi + 0x300]
mov edi, dword [esi + 0x64]
mov ebx, dword [esi + 0x30]
movss xmm1, dword [ebx + 4]
mov ecx, dword [esi + 0xc0]
subss xmm1, xmm0
movss dword [ebx + 4], xmm1
mov dword [ebx], eax
cmp dword [ecx], 0
je 0x5a8d60
mov byte [esi + 6], 1
lea ecx, [esi + 0xf0]
push eax
call fcn.005ad920
add esp, 4
lea eax, [esi + 0xf4]
mov ecx, dword [esi + 0xf0]
movsd xmm1, qword [eax + 8]
movsd xmm0, qword [eax]
movsd qword [esi + 0x258], xmm1
movsd xmm1, qword [eax + 0x10]
mov eax, dword [esi + 0xc0]
movsd qword [esi + 0x250], xmm0
movsd qword [esi + 0x260], xmm1
mov edx, dword [eax]
cmp ecx, edx
jae 0x5aaf7c
movzx eax, word [esi + 0x118]
movsd xmm1, qword [esi + 0x260]
movss xmm0, dword [esi + 0x10c]
movsd xmm2, qword [esi + 0x258]
mov edi, dword [esi + 0x64]
mov ebx, dword [esi + 0x30]
mov dword [esi + 0xc0], eax
mov eax, dword [esi + 0x10]
mov eax, dword [eax + 0x40]
mov eax, dword [eax + ecx*4]
movsd qword [esi + 0x298], xmm1
movsd xmm1, qword [esi + 0x250]
movsd qword [esi + 0x290], xmm2
add eax, 8
movsd qword [esi + 0x288], xmm1
jmp 0x5a8d98
movsd xmm0, qword [edx + 0x60]
movsd qword [esi + 0x298], xmm0
movsd xmm0, qword [edx + 0x50]
movsd xmm1, qword [edx + 0x58]
movsd qword [esi + 0x290], xmm1
movsd qword [esi + 0x288], xmm0
movzx eax, word [edx + 0x74]
movss xmm0, dword [edx + 0x68]
mov dword [esi + 0xc0], eax
xor eax, eax
movsd xmm1, qword [esi + 0x298]
movsd xmm2, qword [esi + 0x290]
test eax, eax
sete cl
cmp word [esi + 0xd0], 0
movsd qword [esi + 0x100], xmm1
movsd xmm1, qword [esi + 0x288]
movsd qword [esi + 0xf8], xmm2
sete dl
or dl, cl
xor ecx, ecx
test dl, dl
movsd qword [esi + 0xf0], xmm1
movss xmm1, dword [esi + 0x68]
movss dword [ebx + 0x10], xmm0
movss dword [ebx + 0x14], xmm1
movsd xmm1, qword [esi + 0xf0]
movsd xmm2, qword [esi + 0xf8]
movsd qword [ebx + 0x18], xmm1
movsd qword [ebx + 0x20], xmm2
movsd xmm1, qword [esi + 0x100]
movsd qword [ebx + 0x28], xmm1
jne 0x5a8e18
mov ecx, eax
xorps xmm1, xmm1
jne 0x5a8f0a
movss xmm0, dword [ecx + 0x50]
mov eax, dword [ecx]
mov dword [esi + 0x10], ecx
mov ecx, dword [ecx + 4]
orpd xmm0, xmmword [0x7259c0]
mov edx, dword [ecx + 8]
mov byte [esi + 6], 1
subsd xmm0, qword [0x725628]
dec edx
and edx, 0xfffffff8
lea eax, [edx + eax + 8]
movapd xmmword [esi + 0xa0], xmm0
push eax
call dword [ecx + 0x14]
add esp, 4
fstp dword [esi + 0x348]
mov ecx, dword [esi + 0x10]
movss xmm0, dword [esi + 0x348]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
movss dword [esi + 0xd0], xmm0
mov edx, dword [ecx + 8]
mov byte [esi + 6], 1
dec edx
and edx, 0xfffffff8
lea eax, [edx + eax + 8]
push eax
call dword [ecx + 0x18]
add esp, 4
fstp dword [esi + 0x344]
mov eax, dword [esi + 0x10]
movss xmm0, dword [esi + 0x344]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
movss dword [esi + 0x68], xmm0
mov edx, dword [eax + 8]
mov byte [esi + 6], 1
dec edx
and edx, 0xfffffff8
lea ecx, [edx + ecx + 8]
push dword [esi + 0xc0]
push dword [esi + 0x2c]
push ecx
call dword [eax + 0x38]
add esp, 0xc
fstp dword [esi + 0x340]
movaps xmm0, xmmword [esi + 0xa0]
mov eax, dword [esi + 0x10]
mov ebx, dword [esi + 0x30]
mov edi, dword [esi + 0x64]
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
movss xmm0, dword [esi + 0xd0]
subss xmm0, dword [esi + 0x68]
divss xmm1, xmm0
movss xmm0, dword [ebx + 0x10]
mulss xmm1, dword [esi + 0x340]
divss xmm1, dword [eax + 0x60]
addss xmm1, dword [ebx + 4]
mov eax, dword [esi + 0x210]
mov ecx, dword [esi + 0x50]
mov edx, dword [esi + 0x6c]
movss dword [ebx + 4], xmm1
addss xmm1, xmm0
movss xmm0, dword [esi + 0x80]
subss xmm1, dword [eax + 4]
ucomiss xmm0, xmm1
jae 0x5a91dc
mov eax, dword [esi + 0x190]
mov ebx, dword [esi + 0x2a0]
dec eax
mov dword [ebx], eax
cmp eax, 1
mov dword [esi + 0x190], eax
jbe 0x5a8a00
mov edi, dword [esi + 0x210]
imul eax, eax, 0x34
lea ebx, [eax + edi - 0x34]
lea eax, [eax + edi - 0x68]
mov dword [esi + 0xa0], eax
jmp 0x5a8a19
mov eax, dword [esi + 0x74]
mov edx, dword [esi + 0x7c]
mov edi, dword [esi + 0x64]
mov dword [esi + 8], eax
jmp 0x5a91d9
imul ebx, dword [esi + 0x190], 0x34
mov eax, dword [esi + 0x50]
mov edi, dword [esi + 0x1a8]
mov ecx, 0x4ec4ec4f
add ebx, eax
add edi, eax
sub edi, ebx
mov eax, edi
mul ecx
cmp edi, 0x8000001c
setb al
jae 0x5ab27c
test edi, edi
mov dword [esi + 0x1a8], edi
js 0x5ab291
mov byte [esi + 0x10], al
movss dword [esi + 0x210], xmm2
mov edi, edx
movzx eax, byte [0x919aa5]
mov eax, dword [0x919820]
test eax, eax
jne 0x5a8ff1
call dword [sym.imp.kernel32.dll_GetProcessHeap]
test eax, eax
je 0x5ab256
mov dword [0x919820], eax
push dword [esi + 0x1a8]
push 0
push eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
test eax, eax
je 0x5ab256
mov ecx, dword [esi + 0xc0]
shr edi, 4
mov dword [esi + 0xf0], eax
mov dword [esi + 0xf4], edi
mov dword [esi + 0xf8], 0
cmp dword [esi + 0x190], ecx
je 0x5ab2a6
movss xmm2, dword [esi + 0x210]
xor ecx, ecx
mov edx, 8
mov dword [esi + 0x10], edi
nop word cs:[eax + eax]
nop
movss xmm0, dword [ebx + edx - 4]
mov edi, dword [ebx + edx - 8]
inc ecx
subss xmm0, xmm2
mov dword [eax + edx - 8], edi
movss dword [eax + edx - 4], xmm0
movsd xmm0, qword [ebx + edx]
movsd xmm1, qword [ebx + edx + 8]
movsd qword [eax + edx], xmm0
movsd qword [eax + edx + 8], xmm1
movsd xmm0, qword [ebx + edx + 0x10]
movsd qword [eax + edx + 0x10], xmm0
movsd xmm0, qword [ebx + edx + 0x18]
movsd qword [eax + edx + 0x18], xmm0
movsd xmm0, qword [ebx + edx + 0x20]
movsd qword [eax + edx + 0x20], xmm0
mov edi, dword [ebx + edx + 0x28]
mov dword [eax + edx + 0x28], edi
mov edi, dword [esi + 0x10]
add edx, 0x34
cmp edi, ecx
jne 0x5a9050
mov edi, dword [esi + 0xf0]
mov ebx, dword [esi + 0xf4]
xorps xmm2, xmm2
lea eax, [esi + 0xf4]
movss xmm0, dword [edi + edx - 0x38]
movss xmm1, dword [edi + 4]
addss xmm0, dword [edi + edx - 0x2c]
mov edx, dword [esi + 0x7c]
movaps xmmword [esi + 0xf0], xmm2
mov dword [eax + 0x2c], 0xff800000
mov dword [eax + 0x24], 0x7f800000
mov dword [eax + 0x30], 0xff800000
mov dword [eax + 0x28], 0x7f800000
mov dword [esi + 0x140], edi
mov dword [esi + 0x144], ebx
mov dword [esi + 0x148], ecx
movss dword [esi + 0x130], xmm1
mov dword [esi + 0x134], 0
cmp edx, dword [esi + 0x78]
movss dword [esi + 0x138], xmm0
mov dword [esi + 0x13c], 0
mov dword [esi + 0x100], 4
mov dword [esi + 0x104], 0
mov dword [esi + 0x108], 0
mov dword [esi + 0x10c], 4
mov dword [esi + 0x110], 0
mov dword [esi + 0x114], 0
mov dword [esi + 0x128], 0
mov dword [esi + 0x12c], 0
mov byte [esi + 0x14c], 0
jne 0x5a91ae
lea ecx, [esi + 0x74]
mov dword [esi + 0x30], ebx
mov dword [esi + 0x10], edi
mov dword [esi + 0x378], 0xc
call fcn.005a69a0
mov edx, dword [esi + 0x7c]
mov edi, dword [esi + 0x64]
mov ecx, dword [esi + 0x74]
lea eax, [edx + edx*2]
shl eax, 5
mov dword [esi + 8], ecx
add eax, ecx
push 0x60
lea ecx, [esi + 0xf0]
push ecx
push eax
mov ebx, edx
call sub.VCRUNTIME140.dll_memcpy
mov edx, ebx
add esp, 0xc
inc edx
mov dword [esi + 0x7c], edx
mov ecx, dword [esi + 0x50]
mov ebx, dword [esi + 8]
test edx, edx
je 0x5ab22c
test ebx, ebx
je 0x5ab22c
lea eax, [edx + edx*2]
shl eax, 5
cmp edi, dword [esi + 0x160]
setne byte [eax + ebx - 4]
cmp dword [esi + 0x200], 0
jne 0x5a798b
jmp 0x5a799a
add ebx, 0x14
mov eax, dword [esi + 0x244]
mov ecx, 0xcccccccd
sub eax, ebx
add ebx, 4
mul ecx
mov edi, edx
shr edi, 4
jmp 0x5a9233
add ebx, 0x14
sub edi, 1
jb 0x5a9250
cmp dword [ebx], 0
je 0x5a9230
push dword [ebx - 4]
push 0
push dword [0x919820]
call dword [sym.imp.kernel32.dll_HeapFree]
jmp 0x5a9230
cmp dword [esi + 0x23c], 0
je 0x5a926d
push dword [esi + 0x238]
push 0
push dword [0x919820]
call dword [sym.imp.kernel32.dll_HeapFree]
movsd xmm0, qword [esi + 0x74]
mov eax, dword [esi + 0x7c]
mov ebx, dword [ebp + 8]
movsd qword [esi + 0x238], xmm0
mov dword [esi + 0x240], eax
mov dword [esi + 0x190], ebx
cmp byte [ebx + 0x35], 0
je 0x5a92b0
mov eax, 0x7fffffff
movss xmm1, dword [0x7258a0]
and eax, dword [ebx + 0xc]
movd xmm0, eax
mov al, 1
ucomiss xmm1, xmm0
mov dword [esi + 8], eax
ja 0x5a92c1
cmp byte [ebx + 0x36], 0
je 0x5a98da
mov dword [esi + 8], 0
mov eax, dword [esi + 0x240]
mov ecx, dword [esi + 0x238]
mov dword [esi + 0xa0], 0
mov dword [esi + 0x17c], eax
lea eax, [eax + eax*2]
mov dword [esi + 0x160], ecx
shl eax, 5
add eax, ecx
mov dword [esi + 0x68], eax
jmp 0x5a9314
mov eax, dword [esi + 0x1f0]
movaps xmm0, xmmword [esi + 0x200]
mov ebx, dword [esi + 0x190]
movss dword [eax + 0x40], xmm0
movaps xmm0, xmmword [esi + 0x210]
movss dword [eax + 0x48], xmm0
mov eax, dword [esi + 0x160]
cmp eax, dword [esi + 0x68]
je 0x5a98da
mov edi, dword [esi + 0xa0]
inc edi
cmp byte [esi + 8], 0
je 0x5a9340
cmp byte [eax + 0x5c], 0
sete dl
jmp 0x5a9342
xor edx, edx
mov ecx, eax
mov dword [esi + 0xa0], edi
cmp edi, dword [esi + 0x17c]
lea eax, [eax + 0x60]
mov edi, dword [ecx + 0x58]
mov dword [esi + 0x160], eax
setne al
test edi, edi
je 0x5a9314
and dl, al
movzx eax, byte [ebx + 0x36]
movss xmm1, dword [ebx + 0xc]
mov dword [esi + 0x1f0], ecx
xor ebx, ebx
mov dword [esi + 0xc0], edi
mov dword [esi + 0x80], edx
mov edx, dword [ecx + 0x50]
xor ecx, ecx
mov dword [esi + 0x200], eax
lea eax, [edi - 1]
and eax, 0x3fffffff
mov dword [esi + 0x50], edx
mov dword [esi + 0x30], eax
inc eax
mov dword [esi + 0xd0], eax
imul eax, edi, 0x34
jmp 0x5a93cb
movzx edx, dl
test byte [edx + 0x8c7c38], 1
je 0x5a9436
nop word [eax + eax]
mov edx, dword [esi + 0x50]
add ebx, 0x34
inc ecx
cmp eax, ebx
je 0x5a9430
mov edx, dword [edx + ebx]
lea edi, [edx - 9]
cmp edi, 5
jb 0x5a93c0
cmp edx, 0x20
je 0x5a93c0
cmp edx, 0x80
jb 0x5a9436
mov edi, edx
shr edi, 8
cmp edi, 0x1f
mov dword [esi + 0x10], edi
jg 0x5a9406
cmp dword [esi + 0x10], 0
je 0x5a93a7
cmp dword [esi + 0x10], 0x16
jne 0x5a9436
cmp edx, 0x1680
je 0x5a93c0
jmp 0x5a9436
cmp dword [esi + 0x10], 0x20
je 0x5a941c
cmp dword [esi + 0x10], 0x30
jne 0x5a9436
cmp edx, 0x3000
je 0x5a93c0
jmp 0x5a9436
movzx edx, dl
test byte [edx + 0x8c7c38], 2
jne 0x5a93c0
jmp 0x5a9436
mov ecx, dword [esi + 0xd0]
mov ebx, dword [esi + 0xc0]
xor edi, edi
cmp ecx, ebx
mov edx, ebx
je 0x5a94e1
inc dword [esi + 0x30]
xor ebx, ebx
jmp 0x5a9466
movzx edx, dl
test byte [edx + 0x8c7c38], 1
je 0x5a94d3
nop dword [eax + eax]
inc ebx
add eax, 0xffffffcc
je 0x5a94d0
mov edx, dword [esi + 0x50]
mov edx, dword [edx + eax - 0x34]
lea edi, [edx - 9]
cmp edi, 5
jb 0x5a9460
cmp edx, 0x20
je 0x5a9460
cmp edx, 0x80
jb 0x5a94d3
mov edi, edx
shr edi, 8
cmp edi, 0x1f
mov dword [esi + 0x10], edi
jg 0x5a94a5
cmp dword [esi + 0x10], 0
je 0x5a944f
cmp dword [esi + 0x10], 0x16
jne 0x5a94d3
cmp edx, 0x1680
je 0x5a9460
jmp 0x5a94d3
cmp dword [esi + 0x10], 0x20
je 0x5a94bb
cmp dword [esi + 0x10], 0x30
jne 0x5a94d3
cmp edx, 0x3000
je 0x5a9460
jmp 0x5a94d3
movzx edx, dl
test byte [edx + 0x8c7c38], 2
jne 0x5a9460
jmp 0x5a94d3
mov ebx, dword [esi + 0x30]
mov eax, dword [esi + 0xc0]
mov edi, ecx
mov edx, eax
sub edx, ebx
mov ebx, eax
mov eax, edx
sub eax, edi
mov dword [esi + 0x30], eax
je 0x5ab07e
cmp edi, ebx
jae 0x5aae51
lea ecx, [edx - 1]
cmp ecx, ebx
jae 0x5aae79
imul eax, ecx, 0x34
mov ecx, dword [esi + 0x50]
mov dword [esi + 0xd0], edi
imul edi, edi, 0x34
cmp dword [esi + 0x30], 2
movss xmm0, dword [ecx + eax + 4]
movss xmm3, dword [ecx + edi + 4]
addss xmm0, dword [ecx + eax + 0x10]
subss xmm0, xmm3
jae 0x5a9570
movaps xmm1, xmm0
cmp byte [esi + 0x80], 0
mov eax, dword [esi + 0x200]
je 0x5a957f
mov ecx, dword [esi + 0xd0]
test eax, eax
je 0x5a958c
movaps xmm2, xmm1
cmp eax, 1
jne 0x5a95a0
mulss xmm2, dword [0x725b30]
movaps xmmword [esi + 0x200], xmm2
movaps xmm2, xmm1
mulss xmm2, dword [0x725640]
jmp 0x5a95b1
cmp byte [esi + 0x80], 0
mov eax, dword [esi + 0x200]
jne 0x5a953e
movaps xmm1, xmm0
mov ecx, dword [esi + 0xd0]
test eax, eax
jne 0x5a9548
xorps xmm2, xmm2
movaps xmmword [esi + 0x200], xmm2
movaps xmm2, xmm1
jmp 0x5a95b1
xorps xmm2, xmmword [0x725630]
movaps xmmword [esi + 0x200], xmm2
xorps xmm2, xmm2
cmp edx, ecx
jb 0x5ab0ac
cmp edx, ebx
ja 0x5ab0d0
mov ecx, dword [esi + 0x50]
imul eax, edx, 0x34
mov edx, 0x4ec4ec4f
add edi, ecx
add eax, ecx
xor ecx, ecx
sub eax, edi
mul edx
shr edx, 4
jmp 0x5a9601
mov ebx, 0x80001f
bt ebx, eax
mov eax, 0
sbb eax, eax
movzx eax, al
add edi, 0x34
and eax, 1
add ecx, eax
dec edx
je 0x5a96a0
mov ebx, dword [edi]
lea eax, [ebx - 9]
cmp eax, 0x18
jb 0x5a95e0
cmp ebx, 0x80
jb 0x5a9650
mov dword [esi + 0x80], edi
mov edi, ebx
xor eax, eax
shr edi, 8
cmp edi, 0x1f
mov dword [esi + 0x10], edi
jg 0x5a9654
cmp dword [esi + 0x10], 0
mov edi, dword [esi + 0x80]
je 0x5a9674
cmp dword [esi + 0x10], 0x16
jne 0x5a95ef
cmp ebx, 0x1680
sete al
jmp 0x5a95ef
xor eax, eax
jmp 0x5a95ef
cmp dword [esi + 0x10], 0x20
mov edi, dword [esi + 0x80]
je 0x5a9685
cmp dword [esi + 0x10], 0x30
jne 0x5a95ef
cmp ebx, 0x3000
sete al
jmp 0x5a95ef
movzx eax, bl
movzx eax, byte [eax + 0x8c7c38]
and al, 1
jmp 0x5a95ef
movzx eax, bl
movzx eax, byte [eax + 0x8c7c38]
and al, 2
shr al, 1
jmp 0x5a95ef
mov eax, dword [esi + 0x30]
subss xmm1, xmm0
xorps xmm4, xmm4
movd xmm0, eax
cmp eax, 1
por xmm0, xmmword [0x7259c0]
subsd xmm0, qword [0x725628]
cvtsd2ss xmm5, xmm0
xorps xmm0, xmm0
addss xmm5, dword [0x725a60]
movss dword [esi + 0x80], xmm0
je 0x5a96e1
movaps xmm4, xmm1
divss xmm4, xmm5
maxss xmm4, xmm0
movaps xmm0, xmmword [esi + 0x180]
mov edx, dword [esi + 0x50]
mov ebx, dword [esi + 0xc0]
test ecx, ecx
movaps xmmword [esi + 0x210], xmm2
je 0x5a97a0
cmp ecx, dword [esi + 0x30]
jae 0x5a97a0
mulss xmm4, xmm0
xorps xmm0, xmm0
cvtss2sd xmm0, xmm4
sub esp, 8
movsd qword [esp], xmm0
movaps xmmword [esi + 0x80], xmm1
movss dword [esi + 0x10], xmm3
mov edi, ecx
movss dword [esi + 0x30], xmm5
call sub.api_ms_win_crt_math_l1_1_0.dll_floor
movss xmm3, dword [esi + 0x10]
mov edx, dword [esi + 0x50]
add esp, 8
fstp dword [esi + 0x33c]
movdqa xmm1, xmmword [0x7259c0]
movsd xmm2, qword [0x725628]
movss xmm4, dword [esi + 0x33c]
movss xmm0, dword [esi + 0x30]
movaps xmm5, xmmword [esi + 0x80]
divss xmm4, dword [esi + 0x180]
mulss xmm0, xmm4
subss xmm5, xmm0
movd xmm0, edi
por xmm0, xmm1
subsd xmm0, xmm2
cvtsd2ss xmm0, xmm0
divss xmm5, xmm0
movss dword [esi + 0x80], xmm5
jmp 0x5a97b0
movdqa xmm1, xmmword [0x7259c0]
movsd xmm2, qword [0x725628]
movd xmm0, dword [esi + 0xd0]
movaps xmm5, xmmword [esi + 0x200]
add edx, 4
imul ebx, ebx, 0x34
movaps xmmword [esi + 0x10], xmm4
por xmm0, xmm1
subss xmm5, xmm3
subsd xmm0, xmm2
cvtsd2ss xmm0, xmm0
mulss xmm0, xmm4
subss xmm5, xmm0
jmp 0x5a9804
addss xmm5, dword [esi + 0x80]
add edx, 0x34
add ebx, 0xffffffcc
je 0x5a92f0
movss xmm0, dword [edx]
movss dword [esi + 0x50], xmm5
addss xmm0, xmm5
mulss xmm0, dword [esi + 0x180]
sub esp, 4
movss dword [esp], xmm0
mov edi, edx
call sub.api_ms_win_crt_math_l1_1_0.dll_roundf
movss xmm5, dword [esi + 0x50]
movaps xmm4, xmmword [esi + 0x10]
mov edx, edi
add esp, 4
fstp dword [esi + 0x338]
addss xmm5, xmm4
movss xmm0, dword [esi + 0x338]
divss xmm0, dword [esi + 0x180]
movss dword [edi], xmm0
mov eax, dword [edi - 4]
lea ecx, [eax - 9]
cmp ecx, 5
jb 0x5a97f0
cmp eax, 0x20
je 0x5a97f0
cmp eax, 0x80
jb 0x5a97f8
mov ecx, eax
shr ecx, 8
cmp ecx, 0x1f
jg 0x5a9892
test ecx, ecx
je 0x5a98b0
cmp ecx, 0x16
jne 0x5a97f8
cmp eax, 0x1680
je 0x5a97f0
jmp 0x5a97f8
cmp ecx, 0x20
je 0x5a98c5
cmp ecx, 0x30
jne 0x5a97f8
cmp eax, 0x3000
je 0x5a97f0
jmp 0x5a97f8
movzx eax, al
test byte [eax + 0x8c7c38], 1
je 0x5a97f8
jmp 0x5a97f0
movzx eax, al
test byte [eax + 0x8c7c38], 2
jne 0x5a97f0
jmp 0x5a97f8
movsd xmm0, qword [esi + 0x238]
mov eax, dword [esi + 0x240]
mov dword [esi + 0x74], ebx
xorps xmm1, xmm1
xorps xmm2, xmm2
movss dword [esi + 0x2c], xmm1
movss dword [esi + 0x6c], xmm1
movsd qword [esi + 0x288], xmm0
mov dword [esi + 0x290], eax
lea eax, [eax + eax*2]
mov ecx, dword [esi + 0x288]
movss xmm0, dword [ebx + 0x30]
shl eax, 5
add eax, ecx
mov edi, ecx
mov dword [esi + 0x1f0], ecx
mov dword [esi + 0x64], eax
mov eax, ecx
jmp 0x5a9a36
movss xmm1, dword [edi + 0x4c]
movaps xmm2, xmm0
cmpunordss xmm2, xmm0
movaps xmm3, xmm2
subss xmm1, dword [edi + 0x44]
andps xmm3, xmm1
maxss xmm1, xmm0
andnps xmm2, xmm1
orps xmm2, xmm3
mulss xmm2, dword [esi + 0x180]
sub esp, 4
movss dword [esp], xmm2
call sub.api_ms_win_crt_math_l1_1_0.dll_roundf
movaps xmm5, xmmword [esi + 0x180]
movss xmm3, dword [esi + 8]
add esp, 4
fstp dword [esi + 0x330]
movss xmm0, dword [esi + 0x330]
divss xmm0, xmm5
movss xmm4, dword [esi + 0x6c]
addss xmm0, xmm3
movss dword [edi + 0x44], xmm3
lea eax, [edi + 0x60]
movss dword [edi + 0x4c], xmm0
mulss xmm0, xmm5
mov dword [esi + 0x50], eax
movss xmm2, dword [edi + 0x40]
movss xmm1, dword [edi + 0x48]
movaps xmm6, xmm4
cmpunordss xmm6, xmm4
movaps xmm3, xmm6
andps xmm3, xmm2
minss xmm2, xmm4
andnps xmm6, xmm2
orps xmm6, xmm3
movss xmm3, dword [esi + 0x2c]
movaps xmmword [esi + 0x10], xmm6
movaps xmm4, xmm3
cmpunordss xmm4, xmm3
movaps xmm2, xmm4
andps xmm2, xmm1
maxss xmm1, xmm3
andnps xmm4, xmm1
orps xmm4, xmm2
movaps xmmword [esi + 0x80], xmm4
sub esp, 4
movss dword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_roundf
add esp, 4
fstp dword [esi + 0x32c]
xorps xmm0, xmm0
movaps xmm1, xmmword [esi + 0x80]
movss xmm2, dword [esi + 0x32c]
mov edi, dword [esi + 0x50]
mov eax, dword [esi + 0x1f0]
movss dword [esi + 0x2c], xmm1
movaps xmm1, xmmword [esi + 0x10]
divss xmm2, dword [esi + 0x180]
movss dword [esi + 0x6c], xmm1
cmp edi, dword [esi + 0x64]
movss dword [esi + 8], xmm2
je 0x5a9b7a
mov eax, dword [edi + 0x58]
test eax, eax
je 0x5a9930
mov dword [esi + 0x10], edi
mov edi, dword [edi + 0x50]
cmp eax, 1
mov dword [esi + 0x50], eax
mov ebx, edi
jne 0x5a9b10
movss xmm0, dword [ebx + 0x14]
mulss xmm0, dword [esi + 0x180]
sub esp, 4
movss dword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_roundf
add esp, 4
mov eax, dword [esi + 0x50]
movss xmm1, dword [ebx + 0xc]
fstp dword [esi + 0x334]
movss xmm0, dword [esi + 0x334]
test eax, eax
divss xmm0, dword [esi + 0x180]
je 0x5a9b60
movss xmm3, dword [esi + 8]
mov ebx, dword [esi + 0x190]
add edi, 8
imul eax, eax, 0x34
jmp 0x5a9ad0
addss xmm2, xmm3
movss dword [edi], xmm2
add edi, 0x34
add eax, 0xffffffcc
je 0x5a9b00
mov ecx, dword [edi + 0x28]
mov edx, dword [ebx + 0x2c]
cmp ecx, edx
jae 0x5aad99
mov edx, dword [ebx + 0x24]
imul ecx, ecx, 0x38
movaps xmm2, xmm1
cmp byte [edx + ecx + 0x29], 0
jne 0x5a9ac0
movss xmm2, dword [edi + 4]
jmp 0x5a9ac0
movaps xmm5, xmmword [esi + 0x180]
jmp 0x5a9b72
imul eax, dword [esi + 0x50], 0x34
mov edx, 0x4ec4ec4f
lea ecx, [edi + 0x34]
add eax, 0xffffffcc
mul edx
mov eax, edi
shr edx, 4
jmp 0x5a9b3c
add ecx, 0x34
dec edx
mov eax, ebx
je 0x5a9a63
movss xmm0, dword [eax + 0x14]
movss xmm1, dword [ecx + 0x14]
mov ebx, ecx
ucomiss xmm1, xmm0
jae 0x5a9b30
ucomiss xmm0, xmm1
mov ebx, eax
jae 0x5a9b30
jmp 0x5aaf97
movaps xmm5, xmmword [esi + 0x180]
movss xmm3, dword [esi + 8]
mov ebx, dword [esi + 0x190]
mov edi, dword [esi + 0x10]
jmp 0x5a9988
mov ecx, dword [ebx + 0x2c]
test ecx, ecx
je 0x5a9c57
mov eax, dword [ebx + 0x24]
imul edi, ecx, 0x38
xorps xmm0, xmm0
xor ecx, ecx
mov dword [esi + 0xec], 0
mov dword [esi + 0x9c], 0
add eax, 0x24
jmp 0x5a9be4
cmp dword [eax], 0
sete dl
or cl, bl
mov ebx, dword [esi + 0xec]
xor dl, 1
or bl, byte [esi + 0x50]
cmp byte [esi + 0x9c], 0
mov dword [esi + 0xec], ebx
setne bl
add eax, 0x38
or bl, dl
add edi, 0xffffffc8
mov dword [esi + 0x9c], ebx
je 0x5a9c2a
cmp dword [eax - 0x10], 0
movss xmm1, dword [eax - 0xc]
setne byte [esi + 0x50]
ucomiss xmm1, xmm0
jne 0x5a9c10
jp 0x5a9c10
cmp dword [eax - 8], 0
sete bl
jmp 0x5a9c12
xor ebx, ebx
movss xmm1, dword [eax - 4]
xor bl, 1
test cl, cl
setne cl
ucomiss xmm1, xmm0
jne 0x5a9c26
jnp 0x5a9bb0
xor edx, edx
jmp 0x5a9bb6
mov eax, dword [esi + 0xec]
xor cl, 1
mov dword [esi + 0x2d0], ecx
xor al, 1
mov dword [esi + 0xec], eax
mov eax, dword [esi + 0x9c]
xor al, 1
mov dword [esi + 0x9c], eax
mov eax, dword [esi + 0x1f0]
jmp 0x5a9c6f
mov cl, 1
mov dword [esi + 0x9c], ecx
mov cl, 1
mov dword [esi + 0x2d0], ecx
mov cl, 1
mov dword [esi + 0xec], ecx
movss xmm1, dword [0x7255e0]
movaps xmm0, xmmword [esi + 0x180]
movaps xmm3, xmmword [0x725a40]
xor edx, edx
xor edi, edi
divss xmm1, xmm0
movaps xmmword [esi + 0x300], xmm3
movss dword [esi + 0x68], xmm1
movaps xmm1, xmmword [0x725a30]
jmp 0x5a9d66
movsd xmm0, qword [esi + 0x1b0]
movsd xmm1, qword [esi + 0x1b8]
mov ecx, dword [esi + 0x160]
mov edx, dword [esi + 0x228]
movss xmm2, dword [esi + 8]
movsd qword [eax + 8], xmm1
movsd qword [eax], xmm0
mov dword [eax + 0x10], ecx
mov ecx, dword [esi + 0xc0]
movaps xmm1, xmmword [esi + 0x300]
movaps xmm0, xmm4
movlhps xmm0, xmm5
mov dword [eax + 0x14], ecx
mov ecx, dword [esi + 0x30]
mov dword [eax + 0x18], ebx
mov dword [eax + 0x1c], ecx
mov dword [eax + 0x20], edi
mov edi, dword [esi + 0x80]
mov ecx, dword [esi + 0x1ec]
mov dword [eax + 0x24], edi
movups xmmword [eax + 0x28], xmm0
movaps xmm0, xmm4
mov dword [eax + 0x38], ecx
mov ecx, dword [esi + 0x190]
add edx, edi
mov edi, dword [esi + 0x2c0]
minps xmm0, xmm1
cmpunordps xmm1, xmm1
andps xmm4, xmm1
andnps xmm1, xmm0
movaps xmm0, xmm5
orps xmm1, xmm4
movaps xmmword [esi + 0x300], xmm1
movaps xmm1, xmmword [esi + 0x2a0]
mov dword [eax + 0x3c], ecx
add edi, ebx
add eax, 0x60
maxps xmm0, xmm1
cmpunordps xmm1, xmm1
andps xmm5, xmm1
andnps xmm1, xmm0
movaps xmm0, xmmword [esi + 0x180]
orps xmm1, xmm5
cmp eax, dword [esi + 0x64]
je 0x5aad24
mov dword [esi + 0x1f0], eax
mov eax, dword [eax + 0x58]
mov dword [esi + 0x2c0], edi
mov dword [esi + 0x228], edx
movaps xmmword [esi + 0x2a0], xmm1
test eax, eax
je 0x5a9e20
mov ecx, dword [esi + 0x74]
movaps xmm0, xmmword [0x726030]
mov edx, dword [ecx + 0x24]
mov ecx, dword [ecx + 0x2c]
movaps xmmword [esi + 0x100], xmm0
xorps xmm0, xmm0
mov dword [esi + 0x110], 0
mov dword [esi + 0x114], 0
movaps xmmword [esi + 0xf0], xmm0
mov dword [esi + 0x50], ecx
lea ecx, [eax + eax]
mov dword [esi + 0x10], edx
lea edi, [ecx + ecx*2]
test edi, edi
je 0x5a9e80
mov dword [esi + 0x378], 4
lea ecx, [esi + 0x100]
xor edx, edx
push edi
call fcn.0071bb70
add esp, 4
mov eax, dword [esi + 0x1f0]
mov ecx, dword [esi + 0x110]
mov edx, dword [esi + 0x114]
mov eax, dword [eax + 0x58]
shl eax, 2
sub ecx, edx
cmp ecx, eax
jb 0x5a9e8d
jmp 0x5a9ea6
movaps xmm4, xmmword [0x725a40]
movaps xmm5, xmmword [0x725a30]
xorps xmm0, xmm0
mov dword [esi + 0xc0], 0
mov dword [esi + 0x160], 4
xor ebx, ebx
mov dword [esi + 0x30], 4
xor edi, edi
mov dword [esi + 0x80], 0
mov dword [esi + 0x1ec], 0
mov dword [esi + 0x190], 0
movaps xmmword [esi + 0x1b0], xmm0
jmp 0x5aacc3
xor ecx, ecx
xor edx, edx
shl eax, 2
sub ecx, edx
cmp ecx, eax
jae 0x5a9ea6
mov dword [esi + 0x378], 4
lea ecx, [esi + 0x10c]
push eax
call fcn.0071bac0
add esp, 4
test byte [esi + 0xec], 1
jne 0x5aa0c0
mov ecx, dword [esi + 0x1f0]
mov eax, dword [ecx + 0x58]
test eax, eax
je 0x5aa66e
mov ebx, dword [ecx + 0x50]
movss xmm5, dword [0x72589c]
imul eax, eax, 0x34
xor edx, edx
add eax, ebx
mov dword [esi + 0x80], eax
jmp 0x5a9ef9
movaps xmm0, xmm7
mov eax, ecx
movaps xmm1, xmm6
add ebx, 0x34
mov edx, edi
cmp ebx, dword [esi + 0x80]
je 0x5aa077
mov ecx, dword [ebx + 0x30]
cmp ecx, dword [esi + 0x50]
jae 0x5aadd5
mov edi, dword [esi + 0x10]
imul ecx, ecx, 0x38
movaps xmm2, xmm5
movss xmm6, dword [ebx + 4]
movss xmm5, dword [ebx + 0x10]
mov ecx, dword [edi + ecx + 0x14]
addss xmm5, xmm6
test ecx, ecx
je 0x5aa000
movss xmm3, dword [ebx + 8]
movss xmm7, dword [ebx + 0x14]
cmp edx, 1
mov edi, 1
subss xmm3, dword [ebx + 0xc]
addss xmm7, xmm3
unpcklps xmm6, xmm3
jne 0x5a9ee0
movaps xmm4, xmm1
cmp eax, ecx
shufps xmm4, xmm1, 0x55
jne 0x5a9f61
ucomiss xmm4, xmm3
jne 0x5a9f61
jp 0x5a9f61
ucomiss xmm0, xmm7
jne 0x5a9f61
jnp 0x5a9ee8
unpcklps xmm2, xmm0
unpcklps xmm1, xmm4
xorps xmm0, xmm0
mov dword [esi + 0x160], ecx
movss dword [esi + 0xd0], xmm7
movaps xmmword [esi + 0xa0], xmm6
movaps xmmword [esi + 0xc0], xmm5
mov dword [esi + 0x30], ebx
mov dword [esi + 0x378], 4
lea ecx, [esi + 0xf0]
lea edx, [esi + 0x1b0]
movlhps xmm1, xmm2
movaps xmmword [esi + 0x250], xmm0
addps xmm1, xmmword [0x726de0]
movups xmmword [esi + 0x1b0], xmm1
push eax
lea eax, [esi + 0x250]
push eax
call fcn.005b3850
add esp, 8
mov ecx, dword [esi + 0x160]
movss xmm0, dword [esi + 0xd0]
movaps xmm1, xmmword [esi + 0xa0]
mov ebx, dword [esi + 0x30]
movaps xmm5, xmmword [esi + 0xc0]
mov edi, 1
mov eax, ecx
jmp 0x5a9ee8
xor edi, edi
test edx, edx
je 0x5aa072
movlhps xmm0, xmm2
mov dword [esi + 0x160], ecx
movaps xmmword [esi + 0xc0], xmm5
mov dword [esi + 0x30], ebx
mov dword [esi + 0x378], 4
lea ecx, [esi + 0xf0]
lea edx, [esi + 0x1b0]
shufps xmm1, xmm0, 0x24
xorps xmm0, xmm0
addps xmm1, xmmword [0x726de0]
movaps xmmword [esi + 0x250], xmm0
movups xmmword [esi + 0x1b0], xmm1
push eax
lea eax, [esi + 0x250]
push eax
call fcn.005b3850
add esp, 8
mov ebx, dword [esi + 0x30]
movaps xmm5, xmmword [esi + 0xc0]
mov ecx, dword [esi + 0x160]
xor edi, edi
jmp 0x5a9ee8
jmp 0x5a9ee8
test ecx, ecx
je 0x5aa0c0
movlhps xmm0, xmm5
mov dword [esi + 0x378], 4
lea ecx, [esi + 0xf0]
lea edx, [esi + 0x1b0]
shufps xmm1, xmm0, 0x24
xorps xmm0, xmm0
addps xmm1, xmmword [0x726de0]
movaps xmmword [esi + 0x250], xmm0
movups xmmword [esi + 0x1b0], xmm1
push eax
lea eax, [esi + 0x250]
push eax
call fcn.005b3850
add esp, 8
mov ecx, dword [esi + 0x1f0]
mov edx, dword [esi + 0x114]
mov eax, dword [ecx + 0x58]
mov dword [esi + 0x1ec], edx
test eax, eax
je 0x5aa65a
movaps xmm1, xmmword [esi + 0x180]
mov ecx, dword [ecx + 0x50]
imul eax, eax, 0x34
add eax, ecx
shufps xmm1, xmm1, 0
mov dword [esi + 0x210], eax
movaps xmmword [esi + 0x200], xmm1
jmp 0x5aa140
movaps xmm1, xmmword [esi + 0x200]
mov eax, dword [esi + 0x10c]
shufps xmm3, xmm3, 0xff
lea ecx, [edx + edx*4]
unpcklps xmm5, xmm3
movlps qword [eax + ecx*4], xmm2
movlps qword [eax + ecx*4 + 8], xmm5
mov dword [eax + ecx*4 + 0x10], edi
inc dword [esi + 0x114]
mov ecx, dword [esi + 0xc0]
mov eax, dword [esi + 0x210]
add ecx, 0x34
cmp ecx, eax
je 0x5aa640
movq xmm2, qword [ecx + 0x28]
movdqa xmm0, xmm2
movd edi, xmm2
shufps xmm0, xmm2, 0x55
movd ebx, xmm0
cmp edi, ebx
je 0x5aa135
movaps xmmword [esi + 0x160], xmm2
movsd xmm3, qword [ecx + 4]
movsd xmm2, qword [ecx + 0x18]
movsd xmm0, qword [ecx + 0x20]
addps xmm2, xmm3
movaps xmmword [esi + 0x80], xmm0
mulps xmm2, xmm1
sub esp, 4
movss dword [esp], xmm2
shufps xmm2, xmm2, 0x55
mov dword [esi + 0xc0], ecx
movaps xmmword [esi + 0x30], xmm2
call sub.api_ms_win_crt_math_l1_1_0.dll_roundf
movaps xmm0, xmmword [esi + 0x30]
movss dword [esp], xmm0
fstp dword [esi + 0x324]
call sub.api_ms_win_crt_math_l1_1_0.dll_roundf
add esp, 4
fstp dword [esi + 0x328]
mov eax, dword [esi + 0xc0]
mov ecx, dword [eax + 0x30]
cmp ecx, dword [esi + 0x50]
jae 0x5aae32
movss xmm2, dword [esi + 0x324]
movss xmm0, dword [esi + 0x328]
movaps xmm3, xmmword [esi + 0x160]
shr ebx, 0x10
shr edi, 0x10
imul eax, ecx, 0x38
mov ecx, dword [esi + 0x10]
movaps xmm4, xmmword [esi + 0x80]
movd xmm1, ebx
unpcklps xmm2, xmm0
movd xmm0, edi
shufps xmm1, xmm3, 0xd4
mov edi, dword [ecx + eax + 0x10]
cmp byte [ecx + eax + 0x28], 0
punpcklqdq xmm0, xmm3
divps xmm2, xmmword [esi + 0x200]
shufps xmm0, xmm1, 0x22
andps xmm0, xmmword [0x725ff0]
addps xmm4, xmm2
cvtdq2ps xmm1, xmm0
movaps xmm0, xmm4
je 0x5aa445
mov edx, dword [esi + 0x108]
mov eax, dword [esi + 0x114]
movaps xmmword [esi + 0x80], xmm0
mov dword [esi + 0xa0], edi
movaps xmmword [esi + 0xd0], xmm1
movaps xmmword [esi + 0x160], xmm2
cmp edx, dword [esi + 0x104]
mov dword [esi + 0x30], eax
jne 0x5aa27a
lea ecx, [esi + 0x100]
mov dword [esi + 0x378], 4
call fcn.005a6860
mov edx, dword [esi + 0x108]
mov eax, dword [esi + 0x100]
mov ecx, dword [esi + 0x30]
mov dword [eax + edx*4], ecx
mov edx, dword [esi + 0x108]
inc edx
mov dword [esi + 0x108], edx
cmp edx, dword [esi + 0x104]
jne 0x5aa2b6
lea ecx, [esi + 0x100]
mov dword [esi + 0x378], 4
call fcn.005a6860
mov edx, dword [esi + 0x108]
mov eax, dword [esi + 0x30]
mov edi, dword [esi + 0x100]
lea ecx, [eax + 1]
mov dword [edi + edx*4], ecx
mov dword [esi + 0x190], ecx
mov edx, dword [esi + 0x108]
inc edx
mov dword [esi + 0x108], edx
cmp edx, dword [esi + 0x104]
jne 0x5aa2fb
lea ecx, [esi + 0x100]
mov dword [esi + 0x378], 4
call fcn.005a6860
mov edx, dword [esi + 0x108]
mov eax, dword [esi + 0x30]
mov edi, dword [esi + 0x100]
lea ecx, [eax + 2]
mov dword [edi + edx*4], ecx
mov edx, dword [esi + 0x108]
inc edx
mov dword [esi + 0x108], edx
cmp edx, dword [esi + 0x104]
jne 0x5aa346
mov dword [esi + 0x17c], ecx
lea ecx, [esi + 0x100]
mov dword [esi + 0x378], 4
call fcn.005a6860
mov edx, dword [esi + 0x108]
mov ecx, dword [esi + 0x17c]
mov eax, dword [esi + 0x100]
mov dword [eax + edx*4], ecx
mov edx, dword [esi + 0x108]
inc edx
mov dword [esi + 0x108], edx
cmp edx, dword [esi + 0x104]
jne 0x5aa37f
lea ecx, [esi + 0x100]
mov dword [esi + 0x378], 4
call fcn.005a6860
mov edx, dword [esi + 0x108]
mov eax, dword [esi + 0x100]
mov ecx, dword [esi + 0x190]
mov dword [eax + edx*4], ecx
mov edx, dword [esi + 0x108]
inc edx
mov dword [esi + 0x108], edx
cmp edx, dword [esi + 0x104]
jne 0x5aa3be
lea ecx, [esi + 0x100]
mov dword [esi + 0x378], 4
call fcn.005a6860
mov edx, dword [esi + 0x108]
mov ecx, dword [esi + 0x30]
mov eax, dword [esi + 0x100]
movaps xmm2, xmmword [esi + 0x80]
movaps xmm4, xmmword [esi + 0x160]
add ecx, 3
movaps xmm5, xmm2
mov dword [eax + edx*4], ecx
inc dword [esi + 0x108]
subps xmm5, xmm4
mov edx, dword [esi + 0x114]
shufps xmm5, xmm5, 0x55
mulss xmm5, dword [0x726804]
cmp edx, dword [esi + 0x110]
movaps xmmword [esi + 0x30], xmm5
jne 0x5aa498
lea ecx, [esi + 0x10c]
mov dword [esi + 0x378], 4
call fcn.00486040
mov edx, dword [esi + 0x114]
movaps xmm2, xmmword [esi + 0x80]
mov edi, dword [esi + 0xa0]
movaps xmm3, xmmword [esi + 0xd0]
movaps xmm4, xmmword [esi + 0x160]
movaps xmm5, xmmword [esi + 0x30]
jmp 0x5aa4a5
movlps qword [esi + 0x250], xmm2
movlps qword [esi + 0x258], xmm0
movups xmmword [esi + 0x1b0], xmm1
mov dword [esi + 0x378], 4
lea ecx, [esi + 0xf0]
lea edx, [esi + 0x250]
push edi
lea eax, [esi + 0x1b0]
push eax
call fcn.005b3850
add esp, 8
mov ecx, dword [esi + 0xc0]
mov eax, dword [esi + 0x210]
movaps xmm1, xmmword [esi + 0x200]
jmp 0x5aa135
mov edi, dword [esi + 0xa0]
movaps xmm3, xmmword [esi + 0xd0]
movaps xmm0, xmm5
xorps xmm1, xmm1
mov eax, dword [esi + 0x10c]
lea ecx, [edx + edx*4]
mulss xmm0, xmm1
movaps xmm1, xmm5
unpcklps xmm1, xmm0
addps xmm1, xmm4
movlps qword [eax + ecx*4], xmm1
movlps qword [eax + ecx*4 + 8], xmm3
mov dword [eax + ecx*4 + 0x10], edi
mov edx, dword [esi + 0x114]
inc edx
mov dword [esi + 0x114], edx
cmp edx, dword [esi + 0x110]
jne 0x5aa52b
lea ecx, [esi + 0x10c]
movaps xmmword [esi + 0x190], xmm1
mov dword [esi + 0x378], 4
call fcn.00486040
mov edx, dword [esi + 0x114]
movaps xmm2, xmmword [esi + 0x80]
mov edi, dword [esi + 0xa0]
movaps xmm3, xmmword [esi + 0xd0]
movaps xmm4, xmmword [esi + 0x160]
movaps xmm5, xmmword [esi + 0x30]
movaps xmm1, xmmword [esi + 0x190]
mov eax, dword [esi + 0x10c]
addss xmm5, xmm2
lea ecx, [edx + edx*4]
movaps xmm0, xmm3
shufps xmm1, xmm1, 0x55
shufps xmm0, xmm3, 0x55
movss dword [eax + ecx*4], xmm5
movaps xmm5, xmm3
movss dword [eax + ecx*4 + 4], xmm1
unpckhpd xmm5, xmm3
movaps xmm1, xmm5
movaps xmmword [esi + 0x30], xmm5
unpcklps xmm1, xmm0
movlps qword [eax + ecx*4 + 8], xmm1
mov dword [eax + ecx*4 + 0x10], edi
mov edx, dword [esi + 0x114]
inc edx
mov dword [esi + 0x114], edx
cmp edx, dword [esi + 0x110]
jne 0x5aa5b7
lea ecx, [esi + 0x10c]
mov dword [esi + 0x378], 4
call fcn.00486040
mov edx, dword [esi + 0x114]
movaps xmm2, xmmword [esi + 0x80]
mov edi, dword [esi + 0xa0]
movaps xmm3, xmmword [esi + 0xd0]
movaps xmm4, xmmword [esi + 0x160]
movaps xmm5, xmmword [esi + 0x30]
mov eax, dword [esi + 0x10c]
movaps xmm1, xmm3
movaps xmm0, xmm2
lea ecx, [edx + edx*4]
shufps xmm1, xmm3, 0xc7
shufps xmm0, xmm2, 0x55
shufps xmm1, xmm3, 0xe2
movss dword [eax + ecx*4], xmm4
movss dword [eax + ecx*4 + 4], xmm0
movlps qword [eax + ecx*4 + 8], xmm1
mov dword [eax + ecx*4 + 0x10], edi
mov edx, dword [esi + 0x114]
inc edx
mov dword [esi + 0x114], edx
cmp edx, dword [esi + 0x110]
jne 0x5aa0ff
lea ecx, [esi + 0x10c]
mov dword [esi + 0x378], 4
call fcn.00486040
mov edx, dword [esi + 0x114]
movaps xmm1, xmmword [esi + 0x200]
movaps xmm2, xmmword [esi + 0x80]
mov edi, dword [esi + 0xa0]
movaps xmm3, xmmword [esi + 0xd0]
movaps xmm5, xmmword [esi + 0x30]
jmp 0x5aa106
mov eax, dword [esi + 0x114]
mov dword [esi + 0x190], eax
cmp byte [esi + 0x2d0], 0
je 0x5aa690
jmp 0x5aa940
mov dword [esi + 0x190], edx
cmp byte [esi + 0x2d0], 0
je 0x5aa690
jmp 0x5aa940
mov eax, dword [esi + 0x114]
mov dword [esi + 0x1ec], eax
mov dword [esi + 0x190], eax
cmp byte [esi + 0x2d0], 0
jne 0x5aa940
nop dword [eax]
mov eax, dword [esi + 0x1f0]
mov eax, dword [eax + 0x58]
test eax, eax
je 0x5aa940
mov ecx, dword [esi + 0x1f0]
movss xmm2, dword [0x72589c]
imul edx, eax, 0x34
xor eax, eax
mov ebx, dword [ecx + 0x50]
add edx, ebx
mov dword [esi + 0x30], edx
jmp 0x5aa6e0
mov dh, byte [esi + 0x160]
xor eax, eax
movss xmm2, dword [ebx + 4]
lea ecx, [ebx + 0x34]
cmp ecx, dword [esi + 0x30]
addss xmm2, dword [ebx + 0x10]
mov ebx, ecx
je 0x5aa8eb
mov ecx, dword [ebx + 0x30]
cmp ecx, dword [esi + 0x50]
jae 0x5aadf4
mov edx, dword [esi + 0x10]
imul ecx, ecx, 0x38
xorps xmm3, xmm3
movss xmm5, dword [edx + ecx + 0x18]
mov edi, dword [edx + ecx + 0x1c]
ucomiss xmm3, xmm5
setnp cl
sete dl
and dl, cl
test edi, edi
sete dh
and dh, dl
je 0x5aa7f0
test eax, eax
je 0x5aa6c6
mov byte [esi + 0x160], dh
lea ecx, [esi + 0x250]
lea edx, [esi + 0x1b0]
mov dword [esi + 0x250], 4
mov dword [esi + 0x254], 0
movss dword [esi + 0x1b0], xmm1
movss dword [esi + 0x1b4], xmm0
movss dword [esi + 0x1b8], xmm2
movss dword [esi + 0xa0], xmm4
mov dword [esi + 0xc0], ebx
mov dword [esi + 0x258], 0
movss dword [esi + 0x1bc], xmm0
mov dword [esi + 0x378], 6
call fcn.00594a60
mov ecx, dword [esi + 0x250]
mov edx, dword [esi + 0x258]
movss xmm0, dword [esi + 0x68]
movss xmm1, dword [esi + 0xa0]
lea eax, [esi + 0xf0]
mov dword [esi + 0xd0], ecx
push eax
push dword [esi + 0x80]
push 0
call fcn.00595280
add esp, 0xc
cmp dword [esi + 0x254], 0
mov ebx, dword [esi + 0xc0]
je 0x5aa6c0
push dword [esi + 0xd0]
push 0
push dword [0x919820]
call dword [sym.imp.kernel32.dll_HeapFree]
jmp 0x5aa6c0
movss xmm3, dword [ebx + 8]
cmp eax, 1
subss xmm3, dword [ebx + 0xc]
addss xmm3, dword [ebx + 0x14]
jne 0x5aa8d0
ucomiss xmm4, xmm5
mov eax, 1
jne 0x5aa827
jp 0x5aa827
cmp dword [esi + 0x80], edi
jne 0x5aa827
ucomiss xmm0, xmm3
jne 0x5aa827
jnp 0x5aa6c8
movss dword [esi + 0x1b0], xmm1
movss dword [esi + 0x1b4], xmm0
movss dword [esi + 0x1b8], xmm2
movss dword [esi + 0x1bc], xmm0
movaps xmm0, xmmword [esi + 0x180]
lea eax, [esi + 0xf0]
mov byte [esi + 0x160], dh
movss dword [esi + 0x200], xmm3
movss dword [esi + 0xd0], xmm5
mov dword [esi + 0xa0], edi
mov dword [esi + 0xc0], ebx
movd edx, xmm4
mov dword [esi + 0x378], 4
lea ecx, [esi + 0x1b0]
push eax
push dword [esi + 0x80]
call fcn.005ab850
add esp, 8
mov ebx, dword [esi + 0xc0]
mov eax, dword [esi + 0xa0]
movss xmm4, dword [esi + 0xd0]
movss xmm0, dword [esi + 0x200]
mov dh, byte [esi + 0x160]
movss xmm1, dword [ebx + 4]
mov dword [esi + 0x80], eax
mov eax, 1
jmp 0x5aa6c8
movss xmm1, dword [ebx + 4]
mov eax, 1
movaps xmm4, xmm5
movaps xmm0, xmm3
mov dword [esi + 0x80], edi
jmp 0x5aa6c8
test dh, dh
jne 0x5aa940
movss dword [esi + 0x1b0], xmm1
movss dword [esi + 0x1b4], xmm0
movss dword [esi + 0x1b8], xmm2
movss dword [esi + 0x1bc], xmm0
movaps xmm0, xmmword [esi + 0x180]
lea eax, [esi + 0xf0]
movd edx, xmm4
mov dword [esi + 0x378], 4
lea ecx, [esi + 0x1b0]
push eax
push dword [esi + 0x80]
call fcn.005ab850
add esp, 8
nop
cmp byte [esi + 0x9c], 0
jne 0x5aac10
mov eax, dword [esi + 0x1f0]
mov eax, dword [eax + 0x58]
test eax, eax
je 0x5aac10
mov ecx, dword [esi + 0x1f0]
movss xmm2, dword [0x72589c]
imul edx, eax, 0x34
xor eax, eax
mov ebx, dword [ecx + 0x50]
add edx, ebx
mov dword [esi + 0x30], edx
jmp 0x5aa9a0
mov dh, byte [esi + 0x160]
xor eax, eax
movss xmm2, dword [ebx + 4]
lea ecx, [ebx + 0x34]
cmp ecx, dword [esi + 0x30]
addss xmm2, dword [ebx + 0x10]
mov ebx, ecx
je 0x5aabbc
mov ecx, dword [ebx + 0x30]
cmp ecx, dword [esi + 0x50]
jae 0x5aae13
movss xmm3, dword [ebx + 8]
mov edx, dword [esi + 0x10]
movss xmm6, dword [ebx + 0x14]
imul ecx, ecx, 0x38
subss xmm3, dword [ebx + 0xc]
movss xmm5, dword [edx + ecx + 0x20]
mov edi, dword [edx + ecx + 0x24]
addss xmm6, xmm3
addss xmm6, xmm3
xorps xmm3, xmm3
ucomiss xmm3, xmm5
mulss xmm6, dword [0x725640]
setnp cl
sete dl
and dl, cl
test edi, edi
sete dh
and dh, dl
je 0x5aaad0
test eax, eax
je 0x5aa986
mov byte [esi + 0x160], dh
lea ecx, [esi + 0x250]
lea edx, [esi + 0x1b0]
mov dword [esi + 0x250], 4
mov dword [esi + 0x254], 0
movss dword [esi + 0x1b0], xmm1
movss dword [esi + 0x1b4], xmm0
movss dword [esi + 0x1b8], xmm2
movss dword [esi + 0xa0], xmm4
mov dword [esi + 0xc0], ebx
mov dword [esi + 0x258], 0
movss dword [esi + 0x1bc], xmm0
mov dword [esi + 0x378], 5
call fcn.00594a60
mov ecx, dword [esi + 0x250]
mov edx, dword [esi + 0x258]
movss xmm0, dword [esi + 0x68]
movss xmm1, dword [esi + 0xa0]
lea eax, [esi + 0xf0]
mov dword [esi + 0xd0], ecx
push eax
push dword [esi + 0x80]
push 0
call fcn.00595280
add esp, 0xc
cmp dword [esi + 0x254], 0
mov ebx, dword [esi + 0xc0]
je 0x5aa980
push dword [esi + 0xd0]
push 0
push dword [0x919820]
call dword [sym.imp.kernel32.dll_HeapFree]
jmp 0x5aa980
cmp eax, 1
jne 0x5aaba1
ucomiss xmm4, xmm5
mov eax, 1
jne 0x5aaaf8
jp 0x5aaaf8
cmp dword [esi + 0x80], edi
jne 0x5aaaf8
ucomiss xmm0, xmm6
jne 0x5aaaf8
jnp 0x5aa988
movss dword [esi + 0x1b0], xmm1
movss dword [esi + 0x1b4], xmm0
movss dword [esi + 0x1b8], xmm2
movss dword [esi + 0x1bc], xmm0
movaps xmm0, xmmword [esi + 0x180]
lea eax, [esi + 0xf0]
mov byte [esi + 0x160], dh
movss dword [esi + 0x200], xmm6
movss dword [esi + 0xd0], xmm5
mov dword [esi + 0xa0], edi
mov dword [esi + 0xc0], ebx
movd edx, xmm4
mov dword [esi + 0x378], 4
lea ecx, [esi + 0x1b0]
push eax
push dword [esi + 0x80]
call fcn.005ab850
add esp, 8
mov ebx, dword [esi + 0xc0]
mov eax, dword [esi + 0xa0]
movss xmm4, dword [esi + 0xd0]
movss xmm0, dword [esi + 0x200]
mov dh, byte [esi + 0x160]
movss xmm1, dword [ebx + 4]
mov dword [esi + 0x80], eax
mov eax, 1
jmp 0x5aa988
movss xmm1, dword [ebx + 4]
mov eax, 1
movaps xmm4, xmm5
movaps xmm0, xmm6
mov dword [esi + 0x80], edi
jmp 0x5aa988
test dh, dh
jne 0x5aac10
movss dword [esi + 0x1b0], xmm1
movss dword [esi + 0x1b4], xmm0
movss dword [esi + 0x1b8], xmm2
movss dword [esi + 0x1bc], xmm0
movaps xmm0, xmmword [esi + 0x180]
lea eax, [esi + 0xf0]
movd edx, xmm4
mov dword [esi + 0x378], 4
lea ecx, [esi + 0x1b0]
push eax
push dword [esi + 0x80]
call fcn.005ab850
add esp, 8
mov edx, dword [esi + 0x114]
mov edi, dword [esi + 0x10c]
movaps xmm4, xmmword [0x725a40]
movaps xmm5, xmmword [0x725a30]
test edx, edx
je 0x5aac88
movaps xmm0, xmmword [0x725a30]
lea eax, [edx*4]
mov ecx, edi
lea eax, [eax + eax*4]
movaps xmm5, xmm0
nop word cs:[eax + eax]
nop
movsd xmm1, qword [ecx]
cmpunordps xmm5, xmm5
add ecx, 0x14
add eax, 0xffffffec
movaps xmm2, xmm1
movaps xmm3, xmm1
minps xmm2, xmm4
cmpunordps xmm4, xmm4
andps xmm3, xmm4
andnps xmm4, xmm2
orps xmm4, xmm3
movaps xmm3, xmm1
maxps xmm1, xmm0
andps xmm3, xmm5
andnps xmm5, xmm1
orps xmm5, xmm3
movaps xmm0, xmm5
jne 0x5aac50
mov dword [esi + 0x30], edi
movaps xmm0, xmmword [esi + 0xf0]
mov eax, dword [esi + 0x100]
mov ecx, dword [esi + 0x104]
mov ebx, dword [esi + 0x108]
mov edi, dword [esi + 0x110]
mov dword [esi + 0x80], edx
movaps xmmword [esi + 0x1b0], xmm0
mov dword [esi + 0x160], eax
mov dword [esi + 0xc0], ecx
mov eax, dword [esi + 0x1f0]
movaps xmmword [esi + 0x50], xmm4
movaps xmmword [esi + 0x10], xmm5
cmp dword [eax + 0x14], 0
je 0x5aacf6
push dword [eax + 0x10]
push 0
push dword [0x919820]
call dword [sym.imp.kernel32.dll_HeapFree]
movaps xmm5, xmmword [esi + 0x10]
movaps xmm4, xmmword [esi + 0x50]
mov eax, dword [esi + 0x1f0]
cmp dword [eax + 0x20], 0
je 0x5a9cb0
push dword [eax + 0x1c]
push 0
push dword [0x919820]
call dword [sym.imp.kernel32.dll_HeapFree]
movaps xmm5, xmmword [esi + 0x10]
movaps xmm4, xmmword [esi + 0x50]
mov eax, dword [esi + 0x1f0]
jmp 0x5a9cb0
mov eax, dword [esi + 0x290]
mov ecx, dword [esi + 0x320]
movsd xmm4, qword [esi + 0x288]
movss xmm5, dword [esi + 0x6c]
movaps xmm3, xmm1
movaps xmm1, xmm0
mov dword [ecx + 0xc], eax
movsd qword [ecx + 4], xmm4
mov eax, dword [esi + 0x74]
movss xmm4, dword [esi + 0x2c]
mov dword [ecx], eax
movss dword [ecx + 0x10], xmm5
mov dword [ecx + 0x14], 0
movss dword [ecx + 0x18], xmm4
movss dword [ecx + 0x1c], xmm2
movaps xmm2, xmmword [esi + 0x300]
mov eax, dword [esi + 0x370]
movlps qword [ecx + 0x20], xmm2
movlps qword [ecx + 0x28], xmm3
mov dword [ecx + 0x30], edx
mov dword [ecx + 0x34], edi
movss dword [ecx + 0x38], xmm1
mov dword fs:[0], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esi + 0x378], 3
push 0x89c228
call fcn.00709fa0
add esp, 4
jmp 0x5ab2ee
mov byte [esi + 7], 1
mov dword [esi + 0x378], 1
push 0x89c09c
call fcn.00709fa0
add esp, 4
jmp 0x5ab2ee
mov edx, dword [esi + 0x50]
mov dword [esi + 0x378], 4
push 0x89c268
call fcn.00709fa0
add esp, 4
jmp 0x5ab2ee
mov edx, dword [esi + 0x50]
mov dword [esi + 0x378], 4
push 0x89c248
call fcn.00709fa0
add esp, 4
jmp 0x5ab2ee
mov edx, dword [esi + 0x50]
mov dword [esi + 0x378], 4
push 0x89c258
call fcn.00709fa0
add esp, 4
jmp 0x5ab2ee
mov edx, dword [esi + 0x50]
mov dword [esi + 0x378], 4
push 0x89c278
call fcn.00709fa0
add esp, 4
jmp 0x5ab2ee
mov byte [esi + 0xe], 0
mov byte [esi + 0xf], 1
mov dword [esi + 0x378], 2
mov ecx, edi
mov edx, ebx
push 0x89c1bc
call fcn.00709fa0
add esp, 4
jmp 0x5ab2ee
mov byte [esi + 0xe], 0
mov byte [esi + 0xf], 1
mov dword [esi + 0x378], 2
mov edx, ebx
push 0x89c1cc
call fcn.00709fa0
add esp, 4
jmp 0x5ab2ee
mov byte [esi + 6], 1
mov dword [esi + 0x378], 9
xor ecx, ecx
xor edx, edx
push 0x89c288
call fcn.00709fa0
add esp, 4
jmp 0x5ab2ee
mov eax, dword [esi + 0x10]
mov edi, dword [esi + 0x190]
mov byte [esi + 0x73], 0
mov dword [esi + 0x378], 0xe
mov dword [esi + 0x2c8], eax
mov dword [esi + 0x2cc], edi
push 0x89c17c
call fcn.00709fa0
add esp, 4
jmp 0x5ab2ee
mov edx, dword [esi + 0x228]
mov byte [esi + 6], 1
push 0x89c1ac
call fcn.00709fa0
add esp, 4
jmp 0x5ab2ee
mov edx, dword [esi + 0x2a0]
mov byte [esi + 6], 1
mov dword [esi + 0x378], 9
mov ecx, ebx
push 0x8c7a2c
call fcn.00709fa0
add esp, 4
jmp 0x5ab2ee
mov byte [esi + 7], 1
mov dword [esi + 0x378], 1
mov ecx, str.called__Option::unwrap____on_a__None__value_rustc_d5c2e9c342b358556da91d61ed4133f6f50fc0c3library_std_src_synconce.rs
mov edx, 0x2b
push 0x89c13c
call fcn.0070a0f0
add esp, 4
jmp 0x5ab2ee
mov byte [esi + 6], 1
push 0x89c09c
call fcn.00709fa0
add esp, 4
jmp 0x5ab2ee
mov byte [esi + 6], 1
push 0x89c09c
call fcn.00709fa0
add esp, 4
jmp 0x5ab2ee
mov edx, dword [esi + 8]
jmp 0x5ab014
mov dword [esi + 0x378], 3
mov ecx, str.called__Option::unwrap____on_a__None__value_rustc_d5c2e9c342b358556da91d61ed4133f6f50fc0c3library_std_src_synconce.rs
mov edx, 0x2b
push 0x89c238
call fcn.0070a0f0
add esp, 4
jmp 0x5ab2ee
mov byte [esi + 6], 1
push 0x89c09c
call fcn.00709fa0
add esp, 4
jmp 0x5ab2ee
mov edx, ecx
mov ecx, dword [esi + 0x4c]
mov dword [esi + 0x378], 9
lea ecx, [ecx + eax - 1]
mov byte [esi + 6], 1
mov dword [esi + 0x378], 9
push 0x8c7a3c
call fcn.00709fa0
add esp, 4
jmp 0x5ab2ee
mov edi, dword [esi + 0x1a4]
mov eax, dword [esi + 0x4c]
mov edx, ecx
mov dword [esi + 0x4c], edi
add eax, dword [esi + 0x4c]
mov byte [esi + 6], 1
mov dword [esi + 0x378], 9
cmp edx, eax
cmova eax, edx
mov ecx, eax
push 0x8c7a4c
call fcn.00709fa0
add esp, 4
jmp 0x5ab2ee
mov ecx, dword [esi + 0x50]
mov byte [esi + 7], 1
push 0x89c12c
push dword [esi + 0xa0]
push edi
call fcn.0070a510
add esp, 0xc
jmp 0x5ab2ee
mov byte [esi + 7], 1
mov ecx, str.called__Option::unwrap____on_a__None__value_rustc_d5c2e9c342b358556da91d61ed4133f6f50fc0c3library_std_src_synconce.rs
mov edx, 0x2b
push 0x89c11c
call fcn.0070a0f0
add esp, 4
jmp 0x5ab2ee
mov byte [esi + 0xe], 0
mov byte [esi + 0xf], 1
mov dword [esi + 0x378], 2
mov ecx, str.assertion_failed:_num_glyphs_in_range___0
mov edx, 0x29
push 0x89c218
call fcn.0070a0f0
add esp, 4
jmp 0x5ab2ee
mov byte [esi + 0xe], 0
mov byte [esi + 0xf], 1
mov dword [esi + 0x378], 2
push 0x89c1dc
call fcn.0070a2f0
add esp, 4
jmp 0x5ab2ee
mov ecx, edx
mov edx, dword [esi + 0xc0]
mov byte [esi + 0xe], 0
mov byte [esi + 0xf], 1
mov dword [esi + 0x378], 2
push 0x89c1dc
call fcn.0070a080
add esp, 4
jmp 0x5ab2ee
mov ecx, dword [esi + 0x30]
mov byte [esi + 6], 1
mov dword [esi + 0x378], 9
push 0x89c18c
call fcn.0070a010
add esp, 4
jmp 0x5ab2ee
mov ecx, 4
mov edx, 0x14
mov byte [esi + 0x72], 1
mov dword [esi + 0x378], 0
call fcn.00709d20
jmp 0x5ab2ee
mov ecx, dword [esi + 8]
mov byte [esi + 6], 1
mov dword [esi + 0x378], 9
push 0x89c15c
call fcn.0070a080
add esp, 4
jmp 0x5ab2ee
mov byte [esi + 0x73], 1
mov dword [esi + 0x2c8], eax
mov dword [esi + 0x2cc], edi
mov dword [esi + 0x378], 0xe
xor ecx, ecx
xor edx, edx
push 0x89c16c
call fcn.00709fa0
add esp, 4
jmp 0x5ab2ee
mov ecx, 0x89c15c
mov byte [esi + 6], 1
mov dword [esi + 0x378], 9
call fcn.0070a530
jmp 0x5ab2ee
mov ecx, dword [esi + 0x190]
mov byte [esi + 6], 1
mov dword [esi + 0x378], 9
push 0x89c15c
call fcn.0070a2f0
add esp, 4
jmp 0x5ab2ee
movzx eax, byte [esi + 0x6c]
xor ecx, ecx
mov edx, edi
mov byte [esi + 6], 1
mov dword [esi + 0x378], 9
mov cl, al
shl ecx, 2
call fcn.00709d20
jmp 0x5ab2ee
mov byte [esi + 6], 1
mov dword [esi + 0x378], 9
call fcn.00425040
jmp 0x5ab2ee
mov byte [esi + 6], 1
mov dword [esi + 0x378], 9
call fcn.00425040
jmp 0x5ab2ee
mov byte [esi + 6], 1
mov dword [esi + 0x378], 9
mov ecx, str.called__Option::unwrap____on_a__None__value_rustc_d5c2e9c342b358556da91d61ed4133f6f50fc0c3library_std_src_synconce.rs
mov edx, 0x2b
push 0x89c14c
call fcn.0070a0f0
add esp, 4
jmp 0x5ab2ee
movzx eax, byte [esi + 0x10]
mov edx, dword [esi + 0x1a8]
xor ecx, ecx
mov byte [esi + 6], 1
mov dword [esi + 0x378], 9
mov cl, al
shl ecx, 2
call fcn.00709d20
jmp 0x5ab2ee
mov byte [esi + 6], 1
mov dword [esi + 0x378], 9
call fcn.00425040
jmp 0x5ab2ee
mov byte [esi + 6], 1
mov dword [esi + 0x378], 9
call fcn.00425040
jmp 0x5ab2ee
mov byte [esi + 0xbf], 1
mov dword [esi + 0x2f8], eax
mov dword [esi + 0x2fc], edi
mov dword [esi + 0x378], 0xb
xor ecx, ecx
xor edx, edx
push 0x89c19c
call fcn.00709fa0
add esp, 4
jmp 0x5ab2ee
mov edx, dword [esi + 8]
mov ecx, edi
mov byte [esi + 6], 1
push 0x8c81e0
push edx
push eax
call fcn.0070a510
add esp, 0xc
ud2