Function at 0x535bb0
Capabilities:
Access peb ldr_data
Get kernel32 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, 0x250
mov esi, esp
mov dword [esi + 0x238], ebp
mov dword [esi + 0x23c], esp
mov dword [esi + 0x248], 0xffffffff
mov dword [esi + 0x244], 0x7045d0
mov dword [esi + 0x1a0], ecx
lea eax, [esi + 0x240]
mov ecx, dword fs:[0]
mov dword [esi + 0x240], ecx
mov dword fs:[0], eax
movzx eax, byte [edx + 0x42]
movsd xmm0, qword [edx + 0x20]
movq xmm7, qword [edx + 0xc]
movq xmm6, qword [edx + 0x18]
movsd xmm5, qword [edx + 0x38]
movzx ebx, word [edx + 0x34]
mov byte [esi + 0x5f], al
movzx eax, byte [edx + 0x46]
movsd qword [esi + 0x178], xmm0
movq xmm0, qword [edx + 0x28]
mov byte [esi + 0xb], al
mov eax, dword [edx + 0x30]
movq qword [esi + 0x180], xmm0
mov dword [esi + 0x188], eax
movzx eax, byte [edx + 0x43]
mov byte [esi + 0x5e], al
movzx eax, byte [edx + 0x44]
mov byte [esi + 0x5d], al
movzx eax, byte [edx + 0x45]
mov byte [esi + 0xd7], al
mov eax, dword [edx]
mov dword [esi + 0x4c], eax
mov eax, dword [edx + 4]
mov dword [esi + 0x54], eax
mov eax, dword [edx + 8]
mov dword [esi + 0xc0], eax
mov eax, dword [edx + 0x14]
mov dword [esi + 0x1a4], eax
movzx eax, word [edx + 0x40]
mov word [esi + 0xbe], ax
mov eax, dword [ebp + 8]
mov edi, dword [eax]
mov eax, dword [edi + 8]
test al, 8
jne 0x535db5
mov ecx, eax
add ecx, 0x10
jb 0x535db5
lock cmpxchg dword [edi + 8], ecx
jne 0x535db5
cmp dword [edi + 0x13c], 0
mov byte [esi + 0x43], 2
mov dword [esi + 0xd8], ebx
je 0x535dfc
mov ebx, dword [esi + 0x4c]
mov ecx, dword [edi + 0x130]
mov edx, dword [edi + 0x134]
pcmpeqd xmm1, xmm1
mov dword [esi + 0x80], edi
mov dword [esi + 0x70], 0
mov eax, ebx
mov dword [esi + 0xa0], ecx
mov dword [esi + 0x10], edx
shr eax, 0x19
movd xmm0, eax
lea eax, [ecx - 0x20]
punpcklbw xmm0, xmm0
mov dword [esi + 0x30], eax
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
and ebx, edx
movdqa xmm3, xmm0
movdqu xmm2, xmmword [ecx + ebx]
pcmpeqb xmm3, xmm2
pmovmskb eax, xmm3
nop word [eax + eax]
test ax, ax
je 0x535d50
tzcnt edi, eax
mov edx, dword [esi + 0x30]
lea ecx, [eax - 1]
add edi, ebx
and ecx, eax
and edi, dword [esi + 0x10]
mov eax, edi
shl eax, 5
sub edx, eax
mov eax, dword [edx + 4]
mov edx, dword [edx]
xor eax, dword [esi + 0x54]
xor edx, dword [esi + 0x4c]
or edx, eax
mov eax, ecx
jne 0x535d20
jmp 0x535d78
pcmpeqb xmm2, xmm1
pmovmskb eax, xmm2
test eax, eax
jne 0x536863
mov eax, dword [esi + 0x70]
mov ecx, dword [esi + 0xa0]
mov edx, dword [esi + 0x10]
lea ebx, [ebx + eax + 0x10]
add eax, 0x10
mov dword [esi + 0x70], eax
jmp 0x535d07
mov ecx, dword [esi + 0xa0]
neg edi
shl edi, 5
movzx eax, byte [ecx + edi - 6]
movsd xmm2, qword [ecx + edi - 0x18]
movsd xmm4, qword [ecx + edi - 0x10]
movzx edx, word [ecx + edi - 8]
movzx ecx, byte [ecx + edi - 5]
mov byte [esi + 0x43], al
mov byte [esi + 0xd6], cl
mov ebx, dword [esi + 0xd8]
mov edi, dword [esi + 0x80]
jmp 0x535dfc
lea ecx, [edi + 8]
movaps xmmword [esi + 0xf0], xmm5
movdqa xmmword [esi + 0x160], xmm6
movdqa xmmword [esi + 0x10], xmm7
call fcn.00719890
movdqa xmm7, xmmword [esi + 0x10]
movdqa xmm6, xmmword [esi + 0x160]
movaps xmm5, xmmword [esi + 0xf0]
cmp dword [edi + 0x13c], 0
mov byte [esi + 0x43], 2
mov dword [esi + 0xd8], ebx
jne 0x535cc1
mov eax, 0xfffffff0
lock xadd dword [edi + 8], eax
and eax, 0xfffffff2
cmp eax, 0x12
je 0x535f40
cmp byte [esi + 0x43], 2
jne 0x537616
mov eax, dword [ebp + 8]
mov edx, 8
mov edi, dword [eax]
xor eax, eax
lock cmpxchg dword [edi + 8], edx
lea ecx, [edi + 8]
jne 0x535fa1
mov dword [edi + 0x4a0], 2
mov eax, dword [edi + 0x480]
or eax, dword [edi + 0x484]
jne 0x535e5b
cmp dword [edi + 0x488], 0
je 0x535f0f
mov dword [edi + 0x484], 0
mov dword [edi + 0x480], 0
mov dword [edi + 0x488], 0
mov eax, dword [edi + 0x498]
test eax, eax
je 0x535f0f
mov dword [esi + 0x30], ecx
mov ecx, dword [edi + 0x490]
mov edx, dword [edi + 0x494]
movdqa xmmword [esi + 0x10], xmm7
movdqa xmmword [esi + 0x160], xmm6
movaps xmmword [esi + 0xf0], xmm5
mov dword [esi + 0x10c], edx
mov dword [esi + 0x108], ecx
mov dword [esi + 0x114], 0
mov dword [esi + 0x110], 0
mov dword [esi + 0x118], 0
lea edx, [esi + 0x108]
mov ecx, dword [edi + 0x49c]
mov dword [esi + 0x248], 0
push edx
push eax
call dword [ecx + 0x14]
add esp, 8
movaps xmm5, xmmword [esi + 0xf0]
mov ebx, dword [esi + 0xd8]
movdqa xmm6, xmmword [esi + 0x160]
movdqa xmm7, xmmword [esi + 0x10]
mov ecx, dword [esi + 0x30]
xor edx, edx
mov eax, 8
lock cmpxchg dword [ecx], edx
jne 0x535fff
cmp dword [esi + 0xc0], 0
xorps xmm4, xmm4
je 0x536046
movzx edx, word [esi + 0xbe]
movdqa xmm2, xmm7
jmp 0x537616
add edi, 8
mov dword [esi + 0x248], 0xffffffff
movaps xmmword [esi + 0x70], xmm4
movaps xmmword [esi + 0xf0], xmm5
movdqa xmmword [esi + 0x160], xmm6
movdqa xmmword [esi + 0x30], xmm2
movdqa xmmword [esi + 0x10], xmm7
mov ecx, edi
mov edi, edx
call fcn.00719c10
movdqa xmm7, xmmword [esi + 0x10]
movdqa xmm2, xmmword [esi + 0x30]
movdqa xmm6, xmmword [esi + 0x160]
movaps xmm5, xmmword [esi + 0xf0]
movaps xmm4, xmmword [esi + 0x70]
mov edx, edi
cmp byte [esi + 0x43], 2
je 0x535e1c
jmp 0x537616
mov dword [esi + 0x248], 0xffffffff
movaps xmmword [esi + 0xf0], xmm5
movdqa xmmword [esi + 0x160], xmm6
movdqa xmmword [esi + 0x10], xmm7
mov dword [esi + 0x30], ecx
call fcn.007188f0
mov ecx, dword [esi + 0x30]
movdqa xmm7, xmmword [esi + 0x10]
movdqa xmm6, xmmword [esi + 0x160]
movaps xmm5, xmmword [esi + 0xf0]
mov dword [edi + 0x4a0], 2
mov eax, dword [edi + 0x480]
or eax, dword [edi + 0x484]
je 0x535e4e
jmp 0x535e5b
mov dword [esi + 0x248], 0xffffffff
movaps xmmword [esi + 0xf0], xmm5
movdqa xmmword [esi + 0x160], xmm6
movdqa xmmword [esi + 0x10], xmm7
call fcn.00719150
movdqa xmm7, xmmword [esi + 0x10]
movdqa xmm6, xmmword [esi + 0x160]
movaps xmm5, xmmword [esi + 0xf0]
cmp dword [esi + 0xc0], 0
xorps xmm4, xmm4
jne 0x535f30
mov eax, dword [ebp + 8]
movdqa xmmword [esi + 0x160], xmm6
movaps xmmword [esi + 0xf0], xmm5
mov eax, dword [eax]
mov dword [esi + 4], eax
lea ecx, [eax + 8]
mov eax, dword [eax + 8]
mov dword [esi + 0xdc], ecx
test al, 8
jne 0x53684f
mov edx, eax
add edx, 0x10
jb 0x53684f
lock cmpxchg dword [ecx], edx
jne 0x53684f
mov eax, dword [esi + 4]
mov ecx, dword [eax + 0x140]
mov edx, dword [eax + 0x14c]
movdqa xmm0, xmmword [ecx]
mov dword [esi + 0x30], ecx
mov ecx, dword [eax + 0x170]
mov eax, dword [eax + 0x17c]
mov dword [esi + 0x10], edx
movdqa xmm1, xmmword [ecx]
movdqa xmmword [esi + 0xc0], xmm0
mov dword [esi + 0xa0], ecx
mov dword [esi + 0xe0], eax
mov dword [esi + 0x248], 1
movdqa xmmword [esi + 0x70], xmm1
call fcn.0052c730
mov ecx, dword [eax + 4]
push dword [eax]
call dword [ecx + 0xc]
add esp, 4
lea edi, [esi + 0x118]
mov edx, 0x85a308d3
lea ebx, [0x89c390]
mov ecx, edi
push eax
push ebx
push 0x13198a2e
push 0x3707344
push 0x243f6a88
call fcn.00410e80
add esp, 0x14
mov edx, dword [esi + 0x10]
mov dword [esi + 0x108], 0x8cdfe0
mov dword [esi + 0x10c], 0
mov dword [esi + 0x110], 0
mov dword [esi + 0x114], 0
mov eax, edx
or eax, dword [esi + 0xe0]
je 0x53616f
mov eax, edx
mov edx, 0xffffffff
mov dword [esi + 0x248], 5
lea ecx, [esi + 0x108]
add eax, dword [esi + 0xe0]
cmovae edx, eax
push edi
call fcn.0070f3c0
mov edx, dword [esi + 0x10]
add esp, 4
mov ecx, dword [esi + 0x30]
movdqa xmm0, xmmword [esi + 0xc0]
movdqa xmm1, xmmword [esi + 0x70]
lea ebx, [ecx + 0x10]
mov ecx, dword [esi + 0xa0]
pmovmskb eax, xmm0
pmovmskb edi, xmm1
not edi
not eax
mov dword [esi + 0x60], edi
add ecx, 0x10
mov dword [esi + 0x70], ecx
jmp 0x5361f2
lea edx, [eax - 1]
mov dword [esi + 0x30], ecx
mov dword [esi + 0xc0], ebx
and edx, eax
tzcnt eax, eax
shl eax, 4
mov dword [esi + 0x80], edx
sub ecx, eax
mov edx, dword [ecx - 0x10]
mov eax, dword [ecx - 0xc]
mov edi, dword [ecx - 8]
mov dword [esi + 0x248], 5
lea ecx, [esi + 0x108]
push edi
push eax
call fcn.0052be10
mov ebx, dword [esi + 0xc0]
add esp, 8
mov edx, dword [esi + 0x10]
mov edi, dword [esi + 0x60]
mov eax, dword [esi + 0x80]
sub edx, 1
jb 0x536280
mov ecx, dword [esi + 0x30]
test ax, ax
mov dword [esi + 0x10], edx
jne 0x5361a0
nop word cs:[eax + eax]
movdqa xmm0, xmmword [ebx]
add ecx, 0xffffff00
add ebx, 0x10
pmovmskb eax, xmm0
cmp ax, 0xffff
je 0x536210
not eax
mov dword [esi + 0x248], 5
jmp 0x5361a0
mov dword [esi + 0x70], eax
lea eax, [edi - 1]
mov dword [esi + 0xa0], ecx
and eax, edi
mov dword [esi + 0x10], eax
tzcnt eax, edi
shl eax, 4
sub ecx, eax
mov edi, dword [ecx - 8]
mov edx, dword [ecx - 0x10]
mov eax, dword [ecx - 0xc]
mov dword [esi + 0x248], 5
lea ecx, [esi + 0x108]
push edi
push eax
call fcn.0052be10
add esp, 8
mov edi, dword [esi + 0x10]
sub dword [esi + 0xe0], 1
jb 0x5362c8
mov ecx, dword [esi + 0xa0]
mov eax, dword [esi + 0x70]
test di, di
jne 0x536240
nop word [eax + eax]
movdqa xmm0, xmmword [eax]
add ecx, 0xffffff00
add eax, 0x10
pmovmskb edi, xmm0
cmp di, 0xffff
je 0x5362a0
not edi
mov dword [esi + 0x248], 5
jmp 0x536240
mov eax, dword [esi + 0x108]
mov ecx, dword [esi + 0x10c]
movdqa xmm0, xmmword [eax]
mov dword [esi + 0x58], ecx
mov ecx, dword [esi + 0x114]
mov dword [esi + 0x48], eax
mov dword [esi + 0xe0], eax
pmovmskb edi, xmm0
mov dword [esi + 0xc0], ecx
lea ecx, [eax + 0x10]
pcmpeqd xmm0, xmm0
not edi
mov dword [esi + 0x80], ecx
cmp dword [esi + 0xc0], 0
je 0x536868
mov eax, dword [esi + 0x80]
mov edx, dword [esi + 0xe0]
test di, di
jne 0x536349
nop word cs:[eax + eax]
nop dword [eax + eax]
movdqa xmm1, xmmword [eax]
add edx, 0xffffff00
add eax, 0x10
pmovmskb edi, xmm1
cmp di, 0xffff
je 0x536330
not edi
mov dword [esi + 0x80], eax
mov eax, edi
dec dword [esi + 0xc0]
mov dword [esi + 0xe0], edx
lea edi, [eax - 1]
tzcnt ecx, eax
and edi, eax
shl ecx, 4
mov eax, edx
sub eax, ecx
cmp byte [eax - 8], 2
jne 0x536303
mov ecx, dword [esi + 4]
cmp dword [ecx + 0x13c], 0
je 0x536303
add eax, 0xfffffff0
mov ecx, dword [esi + 4]
mov dword [esi + 0x44], 0
mov ebx, dword [eax]
mov eax, dword [eax + 4]
mov edx, dword [ecx + 0x130]
mov dword [esi + 0x70], eax
mov eax, ebx
mov dword [esi + 0xa0], ebx
shr eax, 0x19
movd xmm1, eax
mov eax, dword [ecx + 0x134]
punpcklbw xmm1, xmm1
lea ecx, [edx - 0x20]
mov dword [esi + 0xc], edx
pshuflw xmm1, xmm1, 0
mov dword [esi + 0x60], ecx
pshufd xmm1, xmm1, 0
mov dword [esi + 0x30], eax
and ebx, eax
movdqa xmm3, xmm1
movdqu xmm2, xmmword [edx + ebx]
mov dword [esi + 0x10], ebx
pcmpeqb xmm3, xmm2
pmovmskb ecx, xmm3
nop
test cx, cx
je 0x536418
tzcnt ebx, ecx
mov eax, edi
mov edi, dword [esi + 0x60]
lea edx, [ecx - 1]
add ebx, dword [esi + 0x10]
and edx, ecx
and ebx, dword [esi + 0x30]
mov ecx, ebx
shl ecx, 5
sub edi, ecx
mov ecx, dword [edi + 4]
mov edi, dword [edi]
xor ecx, dword [esi + 0x70]
xor edi, dword [esi + 0xa0]
or edi, ecx
mov edi, eax
mov ecx, edx
jne 0x5363e0
jmp 0x536440
pcmpeqb xmm2, xmm0
pmovmskb ecx, xmm2
test ecx, ecx
jne 0x536303
mov eax, dword [esi + 0x44]
mov ebx, dword [esi + 0x10]
mov edx, dword [esi + 0xc]
lea ebx, [ebx + eax + 0x10]
add eax, 0x10
mov dword [esi + 0x44], eax
mov eax, dword [esi + 0x30]
jmp 0x5363c9
movzx eax, byte [0x919aa5]
mov eax, dword [0x919820]
test eax, eax
jne 0x536463
call dword [sym.imp.kernel32.dll_GetProcessHeap]
test eax, eax
je 0x5387c9
mov dword [0x919820], eax
push 0x10
push 0
push eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
test eax, eax
je 0x5387c9
mov ecx, dword [esi + 0xc]
neg ebx
pcmpeqd xmm3, xmm3
mov dword [esi + 0x2c], eax
mov dword [esi + 0x60], 1
shl ebx, 5
lea ecx, [ecx + ebx - 0x18]
mov dword [eax], ecx
mov dword [esi + 0x108], eax
mov dword [esi + 0x10c], 4
mov dword [esi + 0x110], 1
jmp 0x5364e0
mov ecx, dword [esi + 0x108]
mov edx, dword [esi + 0x60]
pcmpeqd xmm3, xmm3
mov edi, dword [esi + 0x10]
mov eax, dword [esi + 0xc]
mov dword [esi + 0x2c], ecx
neg edi
shl edi, 5
lea eax, [eax + edi - 0x18]
mov edi, dword [esi + 0xd0]
mov dword [ecx + edx*4], eax
inc edx
mov dword [esi + 0x60], edx
mov dword [esi + 0x110], edx
cmp dword [esi + 0xc0], 0
je 0x53666a
mov eax, dword [esi + 0x80]
mov ecx, dword [esi + 0xe0]
test di, di
jne 0x536519
nop
movdqa xmm0, xmmword [eax]
add ecx, 0xffffff00
add eax, 0x10
pmovmskb edi, xmm0
cmp di, 0xffff
je 0x536500
not edi
mov dword [esi + 0x80], eax
tzcnt eax, edi
mov edx, ecx
shl eax, 4
mov dword [esi + 0xe0], edx
neg eax
test ecx, ecx
lea ecx, [ecx + eax - 0x10]
cmove ecx, edx
je 0x53666a
lea eax, [edi - 1]
dec dword [esi + 0xc0]
and eax, edi
cmp byte [ecx + 8], 2
mov edi, eax
jne 0x5364e0
mov eax, dword [esi + 4]
cmp dword [eax + 0x13c], 0
je 0x5364e0
mov ebx, dword [ecx]
mov eax, dword [ecx + 4]
mov ecx, dword [esi + 4]
mov dword [esi + 0xd0], edi
mov dword [esi + 0x44], 0
mov dword [esi + 0x30], eax
mov eax, ebx
mov edx, dword [ecx + 0x130]
mov dword [esi + 0xa0], ebx
shr eax, 0x19
movd xmm0, eax
mov eax, dword [ecx + 0x134]
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
lea ecx, [edx - 0x20]
mov dword [esi + 0xc], edx
mov dword [esi + 0x70], ecx
pshufd xmm0, xmm0, 0
mov ecx, ebx
mov dword [esi + 0x10], eax
and ecx, eax
movdqa xmm2, xmm0
movdqu xmm1, xmmword [edx + ecx]
pcmpeqb xmm2, xmm1
pmovmskb ebx, xmm2
test bx, bx
je 0x536600
tzcnt edx, ebx
lea eax, [ebx - 1]
add edx, ecx
and eax, ebx
mov ebx, dword [esi + 0x70]
and edx, dword [esi + 0x10]
mov edi, edx
shl edi, 5
sub ebx, edi
mov edi, dword [ebx + 4]
mov ebx, dword [ebx]
xor edi, dword [esi + 0x30]
xor ebx, dword [esi + 0xa0]
or ebx, edi
mov ebx, eax
jne 0x5365c0
jmp 0x536630
pcmpeqb xmm1, xmm3
pmovmskb eax, xmm1
test eax, eax
jne 0x53665f
mov eax, dword [esi + 0x44]
mov edx, dword [esi + 0xc]
lea ecx, [ecx + eax + 0x10]
add eax, 0x10
mov dword [esi + 0x44], eax
mov eax, dword [esi + 0x10]
jmp 0x5365ad
mov dword [esi + 0x10], edx
mov edx, dword [esi + 0x60]
mov ecx, dword [esi + 0x2c]
cmp edx, dword [esi + 0x10c]
jne 0x5364bb
lea ecx, [esi + 0x108]
mov dword [esi + 0x248], 4
call fcn.005a6860
jmp 0x5364ae
mov edi, dword [esi + 0xd0]
jmp 0x5364e0
mov eax, dword [esi + 0x10c]
mov ebx, dword [esi + 0x108]
mov edi, dword [esi + 0x60]
mov dword [esi + 0x30], eax
mov ecx, dword [esi + 0x58]
test ecx, ecx
je 0x5366a5
mov eax, ecx
shl eax, 4
add ecx, eax
cmp ecx, 0xffffffdf
je 0x5366a5
mov ecx, dword [esi + 0x48]
sub ecx, eax
push dword [ecx - 0x14]
push 0
push dword [0x919820]
call dword [sym.imp.kernel32.dll_HeapFree]
test edi, edi
mov dword [esi + 0x10], ebx
je 0x5367fc
xor ebx, ebx
cmp edi, 0x8000000
setb al
jae 0x53884b
mov bl, al
mov dword [esi + 0x60], edi
shl edi, 4
shl ebx, 2
test edi, edi
js 0x53885c
je 0x53682d
movzx eax, byte [0x919aa5]
mov eax, dword [0x919820]
test eax, eax
jne 0x5366fd
call dword [sym.imp.kernel32.dll_GetProcessHeap]
test eax, eax
je 0x536837
mov dword [0x919820], eax
push edi
push 0
push eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
test eax, eax
je 0x536837
mov edi, dword [esi + 0x60]
mov dword [esi + 0x108], eax
add eax, 8
xor ebx, ebx
mov dword [esi + 0x10c], edi
shl edi, 2
mov dword [esi + 0x110], 0
mov ecx, dword [esi + 0x10]
mov ecx, dword [ecx + ebx*4]
inc ebx
movsx edx, byte [ecx + 0x11]
movsd xmm1, qword [ecx]
movsd xmm2, qword [ecx + 8]
movsx ecx, byte [ecx + 0x10]
movss xmm0, dword [edx*4 + 0x8f8874]
movss xmm3, dword [ecx*4 + 0x8f8808]
unpcklps xmm3, xmm0
mulps xmm3, xmm2
subps xmm1, xmm3
movlps qword [eax - 8], xmm1
addps xmm1, xmm2
movlps qword [eax], xmm1
add eax, 0x10
add edi, 0xfffffffc
jne 0x536730
cmp dword [esi + 0x30], 0
mov dword [esi + 0x110], ebx
je 0x536798
push dword [esi + 0x10]
push 0
push dword [0x919820]
call dword [sym.imp.kernel32.dll_HeapFree]
mov ebx, dword [esi + 0x110]
mov ecx, dword [esi + 0x10c]
mov eax, dword [esi + 0x108]
mov edx, 0xfffffff0
mov dword [esi + 0x104], ecx
mov ecx, dword [esi + 0xdc]
mov dword [esi + 0x58], eax
lock xadd dword [ecx], edx
and edx, 0xfffffff2
cmp edx, 0x12
je 0x536886
cmp ebx, 0x15
mov dword [esi + 0xc], ebx
jae 0x5368a1
cmp ebx, 1
jbe 0x537299
mov ecx, dword [esi + 0x58]
mov edx, dword [esi + 0xc]
mov dword [esi + 0x248], 6
push 1
call fcn.00532bc0
add esp, 4
jmp 0x537299
mov dword [esi + 0x108], 4
mov dword [esi + 0x10c], edi
mov dword [esi + 0x110], 0
xor ebx, ebx
cmp dword [esi + 0x30], 0
mov dword [esi + 0x110], ebx
jne 0x536781
jmp 0x536798
mov eax, ebx
test eax, eax
jne 0x53670f
mov ecx, ebx
mov edx, edi
mov dword [esi + 0x248], 2
call fcn.00709d20
jmp 0x53888e
mov dword [esi + 0x248], 0xffffffff
call fcn.00719890
jmp 0x536086
jmp 0x535da7
mov dword [esi + 0x30], 0
mov ebx, 4
xor edi, edi
mov ecx, dword [esi + 0x58]
test ecx, ecx
jne 0x536683
jmp 0x5366a5
mov dword [esi + 0x248], 0xffffffff
call fcn.00719c10
cmp ebx, 0x15
mov dword [esi + 0xc], ebx
jb 0x5367d4
movzx eax, byte [0x919aa5]
mov eax, dword [0x919820]
test eax, eax
jne 0x5368c4
call dword [sym.imp.kernel32.dll_GetProcessHeap]
test eax, eax
je 0x538805
mov dword [0x919820], eax
mov ecx, ebx
shr ecx, 1
mov dword [esi + 0x19c], ecx
shl ecx, 4
push ecx
push 0
push eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
test eax, eax
mov dword [esi + 0xc0], eax
je 0x538805
movzx eax, byte [0x919aa5]
mov eax, dword [0x919820]
test eax, eax
jne 0x53690c
call dword [sym.imp.kernel32.dll_GetProcessHeap]
test eax, eax
je 0x538828
mov dword [0x919820], eax
push 0x80
push 0
push eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
test eax, eax
je 0x538828
mov edi, eax
mov eax, dword [esi + 0x58]
mov dword [esi + 0x50], 0x10
lea ecx, [eax + 0x20]
add eax, 0xfffffff0
mov dword [esi + 0x170], ecx
mov dword [esi + 0x174], eax
xor ecx, ecx
xor eax, eax
jmp 0x536958
mov eax, dword [esi + 0x48]
mov ecx, 1
mov edx, ebx
sub edx, eax
jbe 0x537278
mov dword [esi + 0x80], edi
mov edi, eax
mov dword [esi + 0x70], eax
mov eax, dword [esi + 0x58]
mov dword [esi + 0x30], edx
mov dword [esi + 0x2c], ecx
shl edi, 4
cmp edx, 2
lea eax, [eax + edi]
mov dword [esi + 0xe0], eax
jae 0x536aa0
mov edx, ebx
mov eax, dword [esi + 0x70]
mov edi, dword [esi + 0x30]
mov dword [esi + 0x30], edi
mov edi, eax
mov eax, edx
sub eax, edi
mov dword [esi + 0x10], eax
jb 0x5386c4
cmp edx, ebx
ja 0x5386c4
jae 0x536a15
cmp dword [esi + 0x30], 0xa
jae 0x536a15
mov ecx, dword [esi + 0x70]
mov dword [esi + 0x248], 8
lea eax, [ecx + 0xa]
cmp eax, ebx
cmovae eax, ebx
mov edx, eax
mov dword [esi + 0x48], eax
mov eax, dword [esi + 0x80]
sub edx, ecx
jb 0x53873a
mov edi, dword [esi + 0x30]
mov ecx, 1
mov dword [esi + 0x98], eax
mov eax, dword [esi + 0x50]
mov dword [esi + 0x10], edx
cmp edi, 2
mov dword [esi + 0x9c], eax
cmovb edi, ecx
mov ecx, dword [esi + 0xe0]
push edi
call fcn.00532bc0
add esp, 4
mov ebx, dword [esi + 0xc]
mov ecx, dword [esi + 0x2c]
mov edx, dword [esi + 0x48]
mov edi, dword [esi + 0x50]
mov dword [esi + 0x48], edx
cmp ecx, edi
jne 0x536b70
lea eax, [edi + edi]
mov ebx, edi
mov dword [esi + 0x30], eax
movzx eax, byte [0x919aa5]
mov eax, dword [0x919820]
test eax, eax
jne 0x536a4e
call dword [sym.imp.kernel32.dll_GetProcessHeap]
test eax, eax
je 0x5386ff
mov dword [0x919820], eax
mov ecx, ebx
shl ecx, 4
push ecx
push 0
push eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
test eax, eax
je 0x5386ff
mov edi, eax
shl ebx, 3
push ebx
mov ebx, dword [esi + 0x80]
push ebx
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
push ebx
push 0
push dword [0x919820]
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [esi + 0x30]
mov ebx, dword [esi + 0xc]
mov ecx, dword [esi + 0x2c]
mov edx, dword [esi + 0x48]
mov dword [esi + 0x50], eax
jmp 0x536b76
movss xmm0, dword [eax]
movss dword [esi + 0xa0], xmm0
movss xmm0, dword [eax + 0x10]
sub esp, 4
movss dword [esi + 0x10], xmm0
movss dword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_roundf
movss xmm0, dword [esi + 0xa0]
movss dword [esp], xmm0
fstp dword [esi + 0x1cc]
call sub.api_ms_win_crt_math_l1_1_0.dll_roundf
add esp, 4
fstp dword [esi + 0x1c8]
movss xmm2, dword [0x7255a8]
mov edx, 0x7fffffff
mov ecx, 0
movss xmm1, dword [esi + 0x1c8]
movss xmm0, dword [esi + 0x1cc]
cvttss2si eax, xmm1
ucomiss xmm1, xmm2
cmova eax, edx
ucomiss xmm1, xmm1
cmovp eax, ecx
ucomiss xmm0, xmm2
movd xmm1, eax
cvttss2si eax, xmm0
cmova eax, edx
ucomiss xmm0, xmm0
cmovp eax, ecx
movd xmm0, eax
punpckldq xmm0, xmm1
pshufd xmm1, xmm1, 0
movq xmm0, xmm0
pcmpgtd xmm1, xmm0
movd eax, xmm1
test al, 1
je 0x536fe0
cmp dword [esi + 0x30], 2
jne 0x536ffd
mov eax, dword [esi + 0x70]
mov ecx, dword [esi + 0x2c]
mov edi, 2
lea edx, [eax + 2]
jmp 0x5371af
mov edi, dword [esi + 0x80]
mov eax, dword [esi + 0x10]
mov dword [edi + ecx*8], eax
mov eax, dword [esi + 0x70]
mov dword [edi + ecx*8 + 4], eax
inc ecx
mov eax, edx
cmp ecx, 2
jb 0x536958
mov dword [esi + 0x80], edi
jmp 0x536c02
mov eax, dword [esi + 0xc0]
mov ecx, dword [esi + 0x70]
sub ecx, eax
push ecx
push eax
push ebx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov ecx, dword [esi + 0xd0]
mov eax, dword [esi + 0xe0]
mov edx, dword [esi + 0xdc]
add ecx, edi
mov edi, dword [esi + 0x80]
mov dword [edi + eax*8 + 8], ecx
mov ecx, dword [esi + 0x60]
mov dword [edi + eax*8 + 0xc], ecx
mov ecx, dword [esi + 4]
not eax
add ecx, eax
lea eax, [edx + 8]
shl ecx, 3
push ecx
push eax
push edx
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov ecx, dword [esi + 0x2c]
mov ebx, dword [esi + 0xc]
cmp ecx, 1
jbe 0x536950
mov edx, ecx
mov eax, dword [edi + ecx*8 - 8]
mov ecx, dword [edi + ecx*8 - 4]
mov dword [esi + 4], edx
add ecx, eax
cmp ecx, ebx
mov ecx, edx
je 0x536c70
mov edx, dword [edi + ecx*8 - 0x10]
cmp edx, eax
jbe 0x536c70
cmp ecx, 3
jb 0x537248
lea ebx, [ecx - 3]
mov dword [esi + 0xe0], ebx
mov ebx, ecx
mov ecx, dword [edi + ecx*8 - 0x18]
lea edi, [edx + eax]
cmp ecx, edi
jbe 0x536fbe
cmp ebx, 4
jb 0x537255
mov edi, dword [esi + 0x80]
add edx, ecx
cmp dword [edi + ebx*8 - 0x20], edx
mov edx, dword [esi + 0xc]
mov ebx, dword [esi + 0xe0]
jbe 0x536c7c
jmp 0x53726b
cmp ecx, 3
jb 0x536c83
lea ebx, [ecx - 3]
mov ecx, dword [edi + ecx*8 - 0x18]
cmp ecx, eax
mov ecx, dword [esi + 4]
jb 0x536c86
lea ebx, [ecx - 2]
cmp ecx, ebx
jbe 0x538574
lea eax, [ebx + 1]
cmp ecx, eax
jbe 0x5385d4
mov edx, edi
mov eax, dword [edi + ebx*8 + 4]
mov edi, dword [edi + ebx*8 + 8]
mov edx, dword [edx + ebx*8 + 0xc]
mov dword [esi + 0xd0], edi
mov dword [esi + 0x60], eax
add edx, edi
mov edi, edx
sub edi, eax
mov dword [esi + 0xa0], edi
jb 0x538634
cmp edx, dword [esi + 0xc]
ja 0x538668
mov eax, dword [esi + 0x80]
shl edx, 4
mov edi, dword [esi + 0x60]
dec ecx
mov dword [esi + 0xe0], ebx
mov dword [esi + 0x10], edx
mov edx, dword [esi + 0xa0]
mov dword [esi + 0x2c], ecx
mov ecx, dword [esi + 0xe0]
mov eax, dword [eax + ebx*8]
shl edi, 4
add edi, dword [esi + 0x58]
mov ebx, eax
sub edx, eax
mov dword [esi + 0x44], eax
shl ebx, 4
cmp edx, eax
mov eax, dword [esi + 0x80]
mov dword [esi + 0x30], edi
lea eax, [eax + ecx*8]
mov dword [esi + 0xdc], eax
mov eax, ebx
lea ebx, [edi + ebx]
jae 0x536e70
mov edi, edx
mov dword [esi + 0xa0], edx
shl edi, 4
push edi
push ebx
push dword [esi + 0xc0]
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add edi, dword [esi + 0xc0]
mov dword [esi + 0x70], edi
mov edi, dword [esi + 0x44]
test edi, edi
jle 0x536ba0
cmp dword [esi + 0xa0], 0
jle 0x536ba0
mov eax, dword [esi + 0x10]
mov edi, dword [esi + 0x70]
add eax, dword [esi + 0x174]
mov dword [esi + 0x10], eax
nop dword [eax]
movss xmm1, dword [ebx - 0x10]
movss xmm0, dword [edi - 0x10]
mov dword [esi + 0xa0], ebx
movss dword [esi + 0x70], xmm1
sub esp, 4
movss dword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_roundf
movss xmm0, dword [esi + 0x70]
movss dword [esp], xmm0
fstp dword [esi + 0x1a8]
call sub.api_ms_win_crt_math_l1_1_0.dll_roundf
add esp, 4
fstp dword [esi + 0x1ac]
movss xmm2, dword [0x7255a8]
mov edx, 0x7fffffff
mov ecx, 0
movss xmm1, dword [esi + 0x1ac]
movss xmm0, dword [esi + 0x1a8]
cvttss2si eax, xmm1
ucomiss xmm1, xmm2
cmova eax, edx
ucomiss xmm1, xmm1
cmovp eax, ecx
ucomiss xmm0, xmm2
movd xmm1, eax
cvttss2si eax, xmm0
cmova eax, edx
ucomiss xmm0, xmm0
cmovp eax, ecx
movd xmm0, eax
punpckldq xmm0, xmm1
pshufd xmm1, xmm1, 0
movq xmm0, xmm0
pcmpgtd xmm1, xmm0
movd eax, xmm1
mov ebx, eax
mov ecx, eax
shl ebx, 4
and ecx, 1
add ebx, dword [esi + 0xa0]
shl ecx, 4
test al, 1
lea edi, [edi + ecx - 0x10]
mov ecx, dword [esi + 0x10]
mov eax, edi
cmovne eax, ebx
cmp ebx, dword [esi + 0x30]
movq xmm0, qword [eax]
movq xmm1, qword [eax + 8]
movq qword [ecx + 8], xmm1
movq qword [ecx], xmm0
jbe 0x536e57
add dword [esi + 0x10], 0xfffffff0
cmp edi, dword [esi + 0xc0]
ja 0x536d70
mov dword [esi + 0x70], edi
mov eax, dword [esi + 0xc0]
mov edi, dword [esi + 0x44]
jmp 0x536ba6
mov dword [esi + 0x70], eax
push eax
push edi
mov edi, dword [esi + 0xc0]
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add dword [esi + 0x70], edi
mov edi, dword [esi + 0x44]
test edi, edi
jle 0x536fb0
cmp dword [esi + 0xa0], edi
jle 0x536fb0
mov eax, dword [esi + 0x10]
add eax, dword [esi + 0x58]
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0xc0]
nop dword [eax]
movss xmm1, dword [eax]
movss xmm0, dword [ebx]
mov edi, eax
movss dword [esi + 0xa0], xmm1
sub esp, 4
movss dword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_roundf
movss xmm0, dword [esi + 0xa0]
movss dword [esp], xmm0
fstp dword [esi + 0x1b0]
call sub.api_ms_win_crt_math_l1_1_0.dll_roundf
add esp, 4
fstp dword [esi + 0x1b4]
movss xmm2, dword [0x7255a8]
mov edx, 0x7fffffff
mov ecx, 0
movss xmm1, dword [esi + 0x1b4]
movss xmm0, dword [esi + 0x1b0]
cvttss2si eax, xmm1
ucomiss xmm1, xmm2
cmova eax, edx
ucomiss xmm1, xmm1
cmovp eax, ecx
ucomiss xmm0, xmm2
movd xmm1, eax
cvttss2si eax, xmm0
cmova eax, edx
ucomiss xmm0, xmm0
mov edx, dword [esi + 0x30]
cmovp eax, ecx
movd xmm0, eax
mov eax, edi
punpckldq xmm0, xmm1
pshufd xmm1, xmm1, 0
movq xmm0, xmm0
pcmpgtd xmm1, xmm0
movd ecx, xmm1
test cl, 1
cmovne eax, ebx
movq xmm0, qword [eax]
movq xmm1, qword [eax + 8]
mov eax, ecx
not al
movzx eax, al
and eax, 1
shl eax, 4
movq qword [edx + 8], xmm1
movq qword [edx], xmm0
add edx, 0x10
add eax, edi
mov dword [esi + 0x30], edx
cmp eax, dword [esi + 0x70]
jae 0x536f97
and ecx, 1
shl ecx, 4
add ebx, ecx
cmp ebx, dword [esi + 0x10]
jb 0x536eb0
mov edi, dword [esi + 0x44]
mov ebx, dword [esi + 0x30]
jmp 0x536ba6
mov eax, dword [esi + 0xc0]
mov ebx, dword [esi + 0x30]
jmp 0x536ba6
mov edi, dword [esi + 0x80]
mov ebx, dword [esi + 0xe0]
cmp ecx, eax
mov ecx, dword [esi + 4]
jae 0x536c83
jmp 0x536c86
cmp dword [esi + 0x30], 2
jne 0x5370cd
mov eax, dword [esi + 0x70]
mov ecx, dword [esi + 0x2c]
mov edi, 2
lea edx, [eax + 2]
jmp 0x536993
add edi, dword [esi + 0x170]
mov ebx, 2
mov dword [esi + 0x60], eax
nop dword [eax + eax]
movss xmm0, dword [esi + 0x10]
movss dword [esi + 0xa0], xmm0
movss xmm0, dword [edi]
sub esp, 4
movss dword [esi + 0x10], xmm0
movss dword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_roundf
movss xmm0, dword [esi + 0xa0]
movss dword [esp], xmm0
fstp dword [esi + 0x1bc]
call sub.api_ms_win_crt_math_l1_1_0.dll_roundf
add esp, 4
fstp dword [esi + 0x1b8]
movss xmm2, dword [0x7255a8]
mov edx, 0x7fffffff
mov ecx, 0
movss xmm1, dword [esi + 0x1b8]
movss xmm0, dword [esi + 0x1bc]
cvttss2si eax, xmm1
ucomiss xmm1, xmm2
cmova eax, edx
ucomiss xmm1, xmm1
cmovp eax, ecx
ucomiss xmm0, xmm2
movd xmm1, eax
cvttss2si eax, xmm0
cmova eax, edx
ucomiss xmm0, xmm0
cmovp eax, ecx
movd xmm0, eax
punpckldq xmm0, xmm1
pshufd xmm1, xmm1, 0
movq xmm0, xmm0
pcmpgtd xmm1, xmm0
movd eax, xmm1
test al, 1
je 0x537197
inc ebx
add edi, 0x10
cmp dword [esi + 0x30], ebx
jne 0x537010
jmp 0x537194
add edi, dword [esi + 0x170]
mov ebx, 2
mov dword [esi + 0x60], eax
nop dword [eax + eax]
movss xmm0, dword [esi + 0x10]
movss dword [esi + 0xa0], xmm0
movss xmm0, dword [edi]
sub esp, 4
movss dword [esi + 0x10], xmm0
movss dword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_roundf
movss xmm0, dword [esi + 0xa0]
movss dword [esp], xmm0
fstp dword [esi + 0x1c4]
call sub.api_ms_win_crt_math_l1_1_0.dll_roundf
add esp, 4
fstp dword [esi + 0x1c0]
movss xmm2, dword [0x7255a8]
mov edx, 0x7fffffff
mov ecx, 0
movss xmm1, dword [esi + 0x1c0]
movss xmm0, dword [esi + 0x1c4]
cvttss2si eax, xmm1
ucomiss xmm1, xmm2
cmova eax, edx
ucomiss xmm1, xmm1
cmovp eax, ecx
ucomiss xmm0, xmm2
movd xmm1, eax
cvttss2si eax, xmm0
cmova eax, edx
ucomiss xmm0, xmm0
cmovp eax, ecx
movd xmm0, eax
punpckldq xmm0, xmm1
pshufd xmm1, xmm1, 0
movq xmm0, xmm0
pcmpgtd xmm1, xmm0
movd eax, xmm1
test al, 1
jne 0x537197
inc ebx
add edi, 0x10
cmp dword [esi + 0x30], ebx
jne 0x5370e0
mov ebx, dword [esi + 0x30]
mov eax, dword [esi + 0x70]
test byte [esi + 0x60], 1
mov edi, ebx
mov ecx, dword [esi + 0x2c]
lea edx, [ebx + eax]
mov ebx, dword [esi + 0xc]
je 0x536993
cmp edx, eax
jb 0x538761
cmp edx, ebx
ja 0x538794
cmp edi, 2
jb 0x536993
mov ecx, eax
mov dword [esi + 0x48], edx
mov edx, dword [esi + 0xe0]
mov eax, edi
mov dword [esi + 0x30], edi
add ecx, edi
shr eax, 1
shl ecx, 4
add ecx, dword [esi + 0x174]
nop word cs:[eax + eax]
nop
movsd xmm0, qword [edx]
movsd xmm1, qword [edx + 8]
movsd qword [esi + 0x110], xmm1
movsd qword [esi + 0x108], xmm0
movsd xmm0, qword [ecx]
movsd xmm1, qword [ecx + 8]
movsd qword [edx + 8], xmm1
movsd qword [edx], xmm0
add edx, 0x10
movq xmm0, qword [esi + 0x108]
movq xmm1, qword [esi + 0x110]
movq qword [ecx + 8], xmm1
movq qword [ecx], xmm0
add ecx, 0xfffffff0
dec eax
jne 0x5371f0
mov ecx, dword [esi + 0x2c]
mov edx, dword [esi + 0x48]
jmp 0x53698d
mov eax, dword [esi + 0x48]
mov ecx, 2
jmp 0x536958
mov eax, dword [esi + 0x48]
mov edi, dword [esi + 0x80]
mov ebx, dword [esi + 0xc]
mov ecx, 3
jmp 0x536958
mov ecx, dword [esi + 4]
mov eax, dword [esi + 0x48]
mov ebx, edx
jmp 0x536958
push edi
push 0
push dword [0x919820]
mov edi, dword [sym.imp.kernel32.dll_HeapFree]
call edi
push dword [esi + 0xc0]
push 0
push dword [0x919820]
call edi
mov eax, dword [ebp + 8]
mov edi, dword [eax]
mov eax, dword [edi + 8]
lea ecx, [edi + 8]
test al, 8
jne 0x5372b5
mov edx, eax
add edx, 0x10
jb 0x5372b5
lock cmpxchg dword [ecx], edx
je 0x5372d0
mov dword [esi + 0x248], 6
mov dword [esi + 0x10], ecx
mov dword [esi + 0x30], edi
call fcn.00719890
mov edi, dword [esi + 0x30]
mov ecx, dword [esi + 0x10]
movd xmm0, dword [edi + 0x418]
movss xmm2, dword [edi + 0x41c]
mov eax, 0xfffffff0
movsd xmm1, qword [edi + 0x410]
movd dword [esi + 0xc0], xmm0
movss dword [esi + 0x70], xmm2
lock xadd dword [edi + 8], eax
movaps xmmword [esi + 0xa0], xmm1
and eax, 0xfffffff2
cmp eax, 0x12
jne 0x537324
mov dword [esi + 0x248], 6
call fcn.00719c10
movaps xmm1, xmmword [esi + 0xa0]
movaps xmm0, xmmword [0x726620]
mov eax, dword [esi + 0xc]
addps xmm0, xmm1
test eax, eax
movaps xmmword [esi + 0x30], xmm0
je 0x537562
mov edi, eax
movzx eax, byte [0x919aa5]
mov eax, dword [0x919820]
test eax, eax
jne 0x537362
call dword [sym.imp.kernel32.dll_GetProcessHeap]
test eax, eax
je 0x5387e7
mov dword [0x919820], eax
push 0x10
push 0
push eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
test eax, eax
je 0x5387e7
mov ebx, dword [esi + 0x58]
shl edi, 4
mov edx, 1
movsd xmm0, qword [ebx]
movsd xmm1, qword [ebx + 8]
add edi, ebx
mov dword [esi + 0xc], edi
movsd qword [eax + 8], xmm1
movsd qword [eax], xmm0
mov dword [esi + 0x108], eax
mov dword [esi + 0x10c], 1
mov dword [esi + 0x110], 1
nop word cs:[eax + eax]
nop dword [eax + eax]
cmp ebx, dword [esi + 0xc]
je 0x5374ab
mov edi, edx
lea ecx, [edx - 1]
mov dword [esi + 0x10], ebx
sub edi, 1
jb 0x53869e
test eax, eax
je 0x53869e
mov ebx, dword [esi + 0x10]
shl edi, 4
movss xmm0, dword [eax + edi + 8]
movsd xmm4, qword [ebx]
movsd xmm3, qword [ebx + 8]
ucomiss xmm0, xmm4
jbe 0x53743f
shl ecx, 4
movaps xmm2, xmm4
add ebx, 0x10
add ecx, eax
movsd xmm1, qword [ecx]
minps xmm2, xmm1
cmpunordps xmm1, xmm1
andps xmm4, xmm1
andnps xmm1, xmm2
movaps xmm2, xmm3
orps xmm1, xmm4
movlps qword [ecx], xmm1
movss xmm1, dword [ecx + 0xc]
unpcklps xmm0, xmm1
maxps xmm2, xmm0
cmpunordps xmm0, xmm0
andps xmm3, xmm0
andnps xmm0, xmm2
orps xmm0, xmm3
movlps qword [ecx + 8], xmm0
jmp 0x5373c0
cmp edx, dword [esi + 0x10c]
jne 0x537489
lea ecx, [esi + 0x108]
movaps xmmword [esi + 0xe0], xmm4
movaps xmmword [esi + 0x80], xmm3
mov dword [esi + 0x248], 9
call fcn.00609f60
mov eax, dword [esi + 0x108]
mov edx, dword [esi + 0x110]
mov ebx, dword [esi + 0x10]
movaps xmm3, xmmword [esi + 0x80]
movaps xmm4, xmmword [esi + 0xe0]
jmp 0x53748c
mov ebx, dword [esi + 0x10]
shl edx, 4
movlhps xmm4, xmm3
add ebx, 0x10
movups xmmword [eax + edx], xmm4
mov edx, dword [esi + 0x110]
inc edx
mov dword [esi + 0x110], edx
jmp 0x5373c0
mov edx, dword [esi + 0x110]
mov eax, dword [esi + 0x108]
mov ecx, edx
shl ecx, 4
test edx, edx
je 0x537501
movss xmm0, dword [0x726630]
movss xmm1, dword [0x726634]
movaps xmm2, xmmword [esi + 0x30]
lea edi, [eax + ecx]
mov ebx, eax
nop dword [eax]
movss xmm3, dword [ebx]
subss xmm3, xmm2
ucomiss xmm3, xmm0
jae 0x5375b4
movss xmm2, dword [ebx + 8]
add ebx, 0x10
cmp ebx, edi
addss xmm2, xmm1
jne 0x5374e0
movaps xmm1, xmmword [esi + 0xa0]
mov ebx, dword [esi + 0xd8]
xor edi, edi
shufps xmm1, xmm1, 0x55
addss xmm1, dword [esi + 0x70]
mulss xmm1, dword [0x725640]
nop word cs:[eax + eax]
nop dword [eax + eax]
cmp ecx, edi
je 0x53756a
movss xmm0, dword [eax + edi + 0xc]
add edi, 0x10
ucomiss xmm1, xmm0
jbe 0x537530
addss xmm0, dword [0x726634]
movss xmm1, dword [eax + edi - 0x10]
unpcklps xmm1, xmm0
movaps xmmword [esi + 0x30], xmm1
cmp dword [esi + 0x10c], 0
jne 0x5375cf
jmp 0x5375de
mov ebx, dword [esi + 0xd8]
jmp 0x5375de
movaps xmm2, xmmword [esi + 0x30]
test edx, edx
je 0x53886d
movss xmm0, dword [ecx + eax - 8]
movss xmm1, dword [0x726340]
movss xmm3, dword [esi + 0xc0]
addss xmm1, xmm0
ucomiss xmm3, xmm1
jbe 0x5384fe
addss xmm0, dword [0x726634]
movss xmm2, xmm0
movaps xmmword [esi + 0x30], xmm2
cmp dword [esi + 0x10c], 0
jne 0x5375cf
jmp 0x5375de
movaps xmm0, xmmword [esi + 0x30]
mov ebx, dword [esi + 0xd8]
movss xmm0, xmm2
movaps xmmword [esi + 0x30], xmm0
cmp dword [esi + 0x10c], 0
je 0x5375de
push eax
push 0
push dword [0x919820]
call dword [sym.imp.kernel32.dll_HeapFree]
cmp dword [esi + 0x104], 0
je 0x5375f8
push dword [esi + 0x58]
push 0
push dword [0x919820]
call dword [sym.imp.kernel32.dll_HeapFree]
movzx edx, word [esi + 0xbe]
movaps xmm5, xmmword [esi + 0xf0]
movdqa xmm6, xmmword [esi + 0x160]
movdqa xmm2, xmmword [esi + 0x30]
xorps xmm4, xmm4
xor eax, eax
cmp dword [esi + 0x1a4], 0
movaps xmm1, xmm4
movsx edi, dl
movaps xmmword [esi + 0x70], xmm4
mov word [esi + 0x44], dx
mov dword [esi + 0x30], edi
movsx edi, dh
shufps xmm1, xmm4, 0x55
mov dword [esi + 0xa0], edi
movaps xmmword [esi + 0xe0], xmm1
sete cl
cmp bl, 3
jne 0x537672
mov al, cl
movd xmm0, eax
pshufd xmm7, xmm0, 0x50
pslld xmm7, 0x1f
psrad xmm7, 0x1f
pand xmm2, xmm7
pandn xmm7, xmm6
por xmm7, xmm2
jmp 0x537790
mov eax, dword [ebp + 8]
mov edi, dword [eax]
mov eax, dword [edi + 8]
test al, 8
jne 0x5383f0
mov ecx, eax
add ecx, 0x10
jb 0x5383f0
lock cmpxchg dword [edi + 8], ecx
jne 0x5383f0
mov eax, 0xfffffff0
movss xmm2, dword [edi + 0x410]
movss xmm3, dword [edi + 0x414]
movss xmm7, dword [edi + 0x418]
movss xmm6, dword [edi + 0x41c]
lock xadd dword [edi + 8], eax
and eax, 0xfffffff2
cmp eax, 0x12
je 0x53848f
ucomiss xmm4, dword [0x7258a0]
jb 0x5376e7
movaps xmm0, xmm7
subss xmm0, xmm2
ucomiss xmm0, dword [0x7258a0]
jae 0x53771a
test bl, bl
je 0x53771a
movzx eax, bl
cmp eax, 1
jne 0x537713
ucomiss xmm4, dword [0x7258a0]
jb 0x538448
movss xmm2, dword [0x725908]
ucomiss xmm1, dword [0x7258a0]
jae 0x537723
jmp 0x537733
subss xmm7, xmm4
movaps xmm2, xmm7
ucomiss xmm1, dword [0x7258a0]
jb 0x537733
movaps xmm0, xmm6
subss xmm0, xmm3
ucomiss xmm0, dword [0x7258a0]
jae 0x537766
test bh, bh
je 0x537766
movzx eax, bh
cmp eax, 1
jne 0x53775f
ucomiss xmm1, dword [0x7258a0]
mov eax, dword [esi + 0x30]
mov ecx, dword [esi + 0xa0]
jb 0x538472
movss xmm3, dword [0x725908]
jmp 0x53776f
subss xmm6, xmm1
movaps xmm3, xmm6
mov eax, dword [esi + 0x30]
mov ecx, dword [esi + 0xa0]
movss xmm0, dword [ecx*4 + 0x8f8880]
movss xmm7, dword [eax*4 + 0x8f8814]
unpcklps xmm2, xmm3
addps xmm5, xmm2
unpcklps xmm7, xmm0
mulps xmm7, xmm4
addps xmm7, xmm5
mov edi, dword [esi + 0x4c]
mov ecx, 0x2df45158
xor edi, 0x38d01376
mov eax, edi
mul ecx
mov ecx, dword [esi + 0x54]
mov dword [esi + 0x10], 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 + 0x80], 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 + 0x80]
bswap edi
xor edi, dword [esi + 0x10]
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, 0x673f0922
adc eax, 0x1f9c3784
xor ecx, 0x6e589c18
xor eax, 0x3ce1de9f
mov ebx, eax
shld ebx, ecx, 0x17
shld ecx, eax, 0x17
xor ecx, 0xff
mov eax, ecx
mul edx
mov dword [esi + 0x10], 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 + 0x80], 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 + 0x80]
bswap ecx
xor ecx, dword [esi + 0x10]
imul ebx, edi, 0xcf6654be
bswap edi
mov eax, ecx
mul edx
mov dword [esi + 0x10], 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
imul edx, edx, 0xcb16f391
add edx, edi
bswap edx
xor edx, dword [esi + 0x10]
test cl, 0x20
mov ebx, edx
cmove edx, eax
cmovne ebx, eax
mov eax, edx
shld eax, ebx, cl
shld ebx, edx, cl
mov ecx, 0x10001
mov dword [esi + 0x10], eax
xor eax, eax
cmp byte [esi + 0x5e], 0
cmove ecx, eax
cmp byte [esi + 0x5f], 0
mov eax, 0x10101
cmove eax, ecx
mov dword [esi + 0x80], eax
mov eax, dword [ebp + 8]
mov edi, dword [eax]
mov eax, dword [edi + 8]
movaps xmmword [esi + 0xc0], xmm7
test al, 8
jne 0x5383a1
mov ecx, eax
add ecx, 0x10
jb 0x5383a1
lock cmpxchg dword [edi + 8], ecx
jne 0x5383a1
mov ecx, dword [edi + 0x1fc]
lock inc dword [ecx]
jle 0x5383cd
mov dword [esi + 0x60], ebx
mov eax, 0xfffffff0
lock xadd dword [edi + 8], eax
and eax, 0xfffffff2
cmp eax, 0x12
je 0x538420
mov eax, dword [esi + 0xa0]
mov dword [esi + 0x18c], ecx
movzx ebx, byte [esi + 0xb]
mov edx, dword [ebp + 8]
mov dword [esi + 4], ecx
lea edi, [esi + 0x1e0]
movss xmm0, dword [ecx + 0x3c]
movss xmm1, dword [ecx + 0x40]
mov dword [esi + 0x248], 0xa
lea ecx, [esi + 0x108]
movss xmm2, dword [eax*4 + 0x8f888c]
mov eax, dword [esi + 0x30]
movss xmm3, dword [eax*4 + 0x8f8820]
movzx eax, byte [esi + 0x5d]
unpcklps xmm3, xmm2
movaps xmm2, xmm7
mulps xmm3, xmm4
subps xmm2, xmm3
movlps qword [esi + 0x1e0], xmm2
addps xmm2, xmm4
movlps qword [esi + 0x1e8], xmm2
push eax
push dword [esi + 0x80]
push edi
push dword [esi + 0x10]
push dword [esi + 0x60]
mov dword [esi + 0x80], ebx
push ebx
push dword [esi + 0x54]
push dword [esi + 0x4c]
push 0x89c7dc
call fcn.00519df0
add esp, 0x24
mov eax, dword [esi + 4]
lock dec dword [eax]
jne 0x5379ff
mov ecx, dword [esi + 0x18c]
mov dword [esi + 0x248], 0xb
call fcn.00562ee0
cmp byte [esi + 0x5f], 0
movzx eax, byte [esi + 0x155]
je 0x537b62
test al, al
mov byte [esi + 0x10], al
je 0x537a95
mov eax, dword [ebp + 8]
mov edi, dword [eax]
mov eax, dword [edi + 8]
lea ecx, [edi + 8]
test al, 8
jne 0x537a33
mov edx, eax
add edx, 0x10
jb 0x537a33
lock cmpxchg dword [ecx], edx
je 0x537a4e
mov dword [esi + 0x248], 0xb
mov dword [esi + 0x60], ecx
mov dword [esi + 4], edi
call fcn.00719890
mov edi, dword [esi + 4]
mov ecx, dword [esi + 0x60]
mov eax, 0xfffffff0
movsd xmm0, qword [edi + 0x2c8]
lock xadd dword [edi + 8], eax
and eax, 0xfffffff2
cmp eax, 0x12
jne 0x537a7f
mov dword [esi + 0x248], 0xb
movaps xmmword [esi + 0x60], xmm0
call fcn.00719c10
movaps xmm0, xmmword [esi + 0x60]
movaps xmm2, xmmword [esi + 0xc0]
mov dword [esi + 0x248], 0xb
addps xmm2, xmm0
jmp 0x537a9c
movaps xmm2, xmmword [esi + 0xc0]
mov eax, dword [esi + 0xa0]
movaps xmm3, xmmword [esi + 0x70]
mov edx, dword [ebp + 8]
lea edi, [esi + 0x1e0]
mov dword [esi + 0x248], 0xb
lea ecx, [esi + 0x1d0]
movss xmm0, dword [eax*4 + 0x8f8898]
mov eax, dword [esi + 0x30]
movss xmm1, dword [eax*4 + 0x8f882c]
mov eax, dword [esi + 0x188]
unpcklps xmm1, xmm0
mov dword [esi + 0x1f0], eax
lea eax, [esi + 0x18c]
mulps xmm1, xmm3
subps xmm2, xmm1
movsd xmm1, qword [esi + 0x180]
movlps qword [esi + 0x18c], xmm2
addps xmm2, xmm3
movlps qword [esi + 0x194], xmm2
movsd xmm2, qword [esi + 0x178]
movsd qword [esi + 0x1e8], xmm1
movsd qword [esi + 0x1e0], xmm2
push edi
push eax
call fcn.0051c400
add esp, 8
mov eax, dword [esi + 0xa0]
movsd xmm0, qword [esi + 0x1d0]
movss xmm1, dword [eax*4 + 0x8f88a4]
mov eax, dword [esi + 0x30]
movss xmm2, dword [eax*4 + 0x8f8838]
movzx eax, byte [esi + 0x10]
unpcklps xmm2, xmm1
mulps xmm2, xmmword [esi + 0x70]
addps xmm2, xmm0
movaps xmmword [esi + 0xc0], xmm2
or al, byte [esi + 0x146]
jne 0x537f77
mov eax, dword [ebp + 8]
mov edi, dword [eax]
mov eax, dword [edi + 8]
lea ecx, [edi + 8]
test al, 8
jne 0x537b8a
mov edx, eax
add edx, 0x10
jb 0x537b8a
lock cmpxchg dword [ecx], edx
je 0x537ba5
mov dword [esi + 0x248], 0xb
mov dword [esi + 0x10], ecx
mov dword [esi + 0x60], edi
call fcn.00719890
mov edi, dword [esi + 0x60]
mov ecx, dword [esi + 0x10]
movd xmm0, dword [edi + 0x2f8]
movd xmm1, dword [edi + 0x2fc]
mov eax, 0xfffffff0
mov edx, dword [edi + 0x2f4]
movd dword [esi + 0x10], xmm0
movd dword [esi + 0x60], xmm1
lock xadd dword [edi + 8], eax
and eax, 0xfffffff2
cmp eax, 0x12
jne 0x537bec
mov dword [esi + 0x248], 0xb
mov dword [esi + 4], edx
call fcn.00719c10
mov edx, dword [esi + 4]
test edx, edx
je 0x537d11
mov eax, dword [ebp + 8]
mov edi, dword [eax]
mov eax, dword [edi + 8]
lea ecx, [edi + 8]
test al, 8
jne 0x537c10
mov edx, eax
add edx, 0x10
jb 0x537c10
lock cmpxchg dword [ecx], edx
je 0x537c2b
mov dword [esi + 0x248], 0xb
mov dword [esi + 4], ecx
mov dword [esi + 0xc], edi
call fcn.00719890
mov edi, dword [esi + 0xc]
mov ecx, dword [esi + 4]
mov edx, dword [edi + 0x314]
mov eax, dword [edi + 0x30c]
shl edx, 3
lea edx, [edx + edx*2]
nop dword [eax]
mov edi, edx
test edx, edx
je 0x537c51
cmp byte [eax], 1
lea eax, [eax + 0x18]
lea edx, [edi - 0x18]
jne 0x537c40
mov eax, 0xfffffff0
lock xadd dword [ecx], eax
and eax, 0xfffffff2
cmp eax, 0x12
jne 0x537c77
mov dword [esi + 0x248], 0xb
mov dword [esi + 4], edi
call fcn.00719c10
mov edi, dword [esi + 4]
test edi, edi
je 0x537d11
mov eax, dword [ebp + 8]
mov ebx, dword [eax]
mov eax, dword [ebx + 8]
lea edi, [ebx + 8]
test al, 8
jne 0x537c9b
mov ecx, eax
add ecx, 0x10
jb 0x537c9b
lock cmpxchg dword [edi], ecx
je 0x537cb8
mov ecx, edi
mov dword [esi + 0x248], 0xb
mov dword [esi + 4], edi
mov dword [esi + 0xc], ebx
call fcn.00719890
mov ebx, dword [esi + 0xc]
mov edi, dword [esi + 4]
mov eax, dword [ebx + 0x1fc]
movd xmm0, dword [esi + 0x10]
movd xmm1, dword [esi + 0x60]
lea ecx, [ebx + 0x10]
movss xmm2, dword [eax + 0x30]
call fcn.0055feb0
mov dword [esi + 0x10], eax
mov eax, 0xfffffff0
lock xadd dword [ebx + 8], eax
and eax, 0xfffffff2
cmp eax, 0x12
jne 0x537d08
mov byte [esi + 4], cl
mov ecx, edi
mov dword [esi + 0x248], 0xb
mov dword [esi + 0x60], edx
call fcn.00719c10
movzx ecx, byte [esi + 4]
mov edx, dword [esi + 0x60]
cmp cl, 6
jne 0x5383d1
mov eax, dword [ebp + 8]
mov edi, dword [eax]
mov eax, dword [edi + 8]
lea ecx, [edi + 8]
mov dword [esi + 0x10], edi
mov dword [esi + 0xc], ecx
test al, 8
jne 0x537d33
mov edx, eax
add edx, 0x10
jb 0x537d33
lock cmpxchg dword [ecx], edx
je 0x537d48
mov dword [esi + 0x248], 0xb
call fcn.00719890
mov edi, dword [esi + 0x10]
mov ecx, dword [esi + 0xc]
xor edx, edx
cmp dword [edi + 0x14c], 0
je 0x537f49
mov eax, edi
mov edi, dword [edi + 0x150]
mov edx, 0x2df45158
pcmpeqd xmm1, xmm1
mov dword [esi + 4], 0
mov ecx, eax
mov ecx, dword [ecx + 0x154]
xor edi, dword [esi + 0x80]
mov eax, edi
mul edx
mov dword [esi + 0x60], eax
imul eax, edi, 0x2d7f954c
bswap edi
add eax, edx
imul edx, ecx, 0x2df45158
bswap ecx
add edx, eax
mov eax, ecx
imul ecx, ecx, 0xa7ae0bd2
mov dword [esi + 0x2c], edx
mov edx, 0xb36a80d2
mul edx
mov ebx, eax
add ecx, edx
imul eax, edi, 0xb36a80d2
mov edx, 0x2df45158
add eax, ecx
mov ecx, dword [esi + 0x60]
bswap ebx
xor ebx, dword [esi + 0x2c]
bswap eax
xor ecx, dword [esi + 0x4c]
xor ebx, dword [esi + 0x54]
xor ecx, eax
mov eax, ecx
mov dword [esi + 0x60], ecx
mul edx
mov dword [esi + 0x2c], eax
imul eax, ecx, 0x2d7f954c
imul ecx, ebx, 0x2df45158
bswap ebx
add eax, edx
add ecx, eax
mov eax, ebx
mov dword [esi + 0xd0], ecx
mov ecx, 0xb36a80d2
mul ecx
imul ecx, ebx, 0xa7ae0bd2
mov edi, eax
mov eax, dword [esi + 0x60]
add ecx, edx
bswap edi
xor edi, dword [esi + 0xd0]
bswap eax
imul eax, eax, 0xb36a80d2
add eax, ecx
mov ecx, dword [esi + 0x10]
bswap eax
xor eax, dword [esi + 0x2c]
mov edx, dword [ecx + 0x15c]
mov ebx, dword [ecx + 0x158]
mov dword [esi + 0xd0], eax
mov ecx, ebx
mov dword [esi + 0xdc], edx
bswap edx
not ebx
bswap ecx
mov dword [esi + 0x60], edx
imul ecx, eax
mul dword [esi + 0x60]
mov dword [esi + 0x2c], eax
mov eax, dword [esi + 0x60]
add edx, ecx
imul eax, edi
bswap edi
add eax, edx
mov dword [esi + 0x60], eax
mov eax, dword [esi + 0xdc]
not eax
imul eax, edi
mov ecx, eax
mov eax, edi
mov edi, dword [esi + 0xd0]
mul ebx
add edx, ecx
bswap eax
xor eax, dword [esi + 0x60]
mov ecx, edi
bswap ecx
imul ebx, ecx
mov ecx, edi
add ebx, edx
mov edx, eax
bswap ebx
xor ebx, dword [esi + 0x2c]
test cl, 0x20
cmovne edx, ebx
cmovne ebx, eax
mov eax, dword [esi + 0x10]
shld ebx, edx, cl
mov ecx, dword [eax + 0x140]
mov edx, dword [eax + 0x144]
mov eax, ebx
shr eax, 0x19
movd xmm0, eax
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
lea eax, [ecx - 0x10]
mov dword [esi + 0x60], ecx
pshufd xmm0, xmm0, 0
mov dword [esi + 0x10], eax
and ebx, edx
movdqa xmm3, xmm0
mov eax, edx
movdqu xmm2, xmmword [ecx + ebx]
pcmpeqb xmm3, xmm2
pmovmskb edi, xmm3
nop word [eax + eax]
test di, di
je 0x537f20
mov edx, edi
lea edi, [edx - 1]
tzcnt ecx, edx
and edi, edx
mov edx, dword [esi + 0x10]
add ecx, ebx
and ecx, eax
shl ecx, 4
sub edx, ecx
mov ch, byte [esi + 0xb]
cmp ch, byte [edx + 8]
jne 0x537ee0
mov ecx, dword [edx]
mov edx, dword [edx + 4]
xor ecx, dword [esi + 0x4c]
xor edx, dword [esi + 0x54]
or edx, ecx
jne 0x537ee0
jmp 0x537f44
pcmpeqb xmm2, xmm1
pmovmskb edx, xmm2
test edx, edx
jne 0x53856d
mov ecx, dword [esi + 4]
mov edx, eax
lea ebx, [ebx + ecx + 0x10]
add ecx, 0x10
mov dword [esi + 4], ecx
mov ecx, dword [esi + 0x60]
jmp 0x537ec5
mov dl, 1
mov ecx, dword [esi + 0xc]
mov eax, 0xfffffff0
lock xadd dword [ecx], eax
and eax, 0xfffffff2
cmp eax, 0x12
jne 0x537f6f
mov dword [esi + 0x248], 0xb
mov dword [esi + 4], edx
call fcn.00719c10
mov edx, dword [esi + 4]
test dl, dl
jne 0x5381a8
mov eax, dword [ebp + 8]
mov edx, 8
mov edi, dword [eax]
xor eax, eax
lock cmpxchg dword [edi + 8], edx
lea ecx, [edi + 8]
mov dword [esi + 0x10], edi
mov dword [esi + 0x60], ecx
je 0x537fa5
mov dword [esi + 0x248], 0xb
call fcn.007188f0
mov edi, dword [esi + 0x10]
mov edx, dword [esi + 0x4c]
lea ecx, [edi + 0x170]
mov dword [esi + 0x248], 0xd
push dword [esi + 0x80]
push dword [esi + 0x54]
call fcn.0052be10
add esp, 8
mov eax, dword [esi + 0x10]
mov edx, dword [esi + 0x4c]
lea ecx, [eax + 0x1a0]
push dword [esi + 0x80]
push dword [esi + 0x54]
call fcn.0052be10
add esp, 8
mov ecx, dword [esi + 0x10]
mov edx, dword [ecx + 0x1d8]
lea eax, [ecx + 0x1d0]
mov dword [esi + 4], eax
mov eax, dword [ecx + 0x1d0]
mov edi, edx
shl edi, 4
mov dword [esi + 0x80], eax
nop dword [eax]
test edi, edi
je 0x538036
movzx ecx, byte [esi + 0xb]
mov ebx, eax
add edi, 0xfffffff0
add eax, 0x10
cmp byte [ebx + 8], cl
jne 0x538010
mov ecx, dword [ebx]
mov ebx, dword [ebx + 4]
xor ecx, dword [esi + 0x4c]
xor ebx, dword [esi + 0x54]
or ebx, ecx
jne 0x538010
jmp 0x53808a
mov edi, dword [esi + 0x10]
cmp edx, dword [edi + 0x1d4]
jne 0x538064
mov ecx, dword [esi + 4]
mov dword [esi + 0x248], 0xd
call fcn.00609ec0
mov edi, dword [esi + 0x10]
mov ebx, dword [edi + 0x1d0]
mov edx, dword [edi + 0x1d8]
jmp 0x53806a
mov ebx, dword [esi + 0x80]
mov ecx, dword [esi + 0x4c]
mov eax, edx
inc edx
shl eax, 4
mov dword [ebx + eax], ecx
mov ecx, dword [esi + 0x54]
mov dword [ebx + eax + 4], ecx
mov ch, byte [esi + 0xb]
mov byte [ebx + eax + 8], ch
mov dword [edi + 0x1d8], edx
mov ecx, dword [esi + 0x60]
xor edx, edx
mov eax, 8
mov ebx, 8
lock cmpxchg dword [ecx], edx
je 0x5380b3
mov dword [esi + 0x248], 0xb
call fcn.00719150
mov ebx, 8
mov eax, dword [ebp + 8]
mov edi, dword [eax]
xor eax, eax
lock cmpxchg dword [edi + 8], ebx
lea ecx, [edi + 8]
je 0x5380e5
mov dword [esi + 0x248], 0xb
mov dword [esi + 0x10], ecx
mov dword [esi + 0x80], edi
call fcn.007188f0
mov edi, dword [esi + 0x80]
mov ecx, dword [esi + 0x10]
mov dword [edi + 0x4a0], 2
mov eax, dword [edi + 0x480]
or eax, dword [edi + 0x484]
jne 0x53810a
cmp dword [edi + 0x488], 0
je 0x53818c
mov dword [edi + 0x484], 0
mov dword [edi + 0x480], 0
mov dword [edi + 0x488], 0
mov eax, dword [edi + 0x498]
test eax, eax
je 0x53818c
mov dword [esi + 0x10], ecx
mov ecx, dword [edi + 0x490]
mov edx, dword [edi + 0x494]
mov dword [esi + 0x1e4], edx
mov dword [esi + 0x1e0], ecx
mov dword [esi + 0x1ec], 0
mov dword [esi + 0x1e8], 0
mov dword [esi + 0x1f0], 0
lea edx, [esi + 0x1e0]
mov ecx, dword [edi + 0x49c]
mov dword [esi + 0x248], 0xc
push edx
push eax
call dword [ecx + 0x14]
add esp, 8
mov ecx, dword [esi + 0x10]
xor edx, edx
mov eax, 8
lock cmpxchg dword [ecx], edx
je 0x5381a8
mov dword [esi + 0x248], 0xb
call fcn.00719150
push 0x58
lea eax, [esi + 0x108]
push eax
lea eax, [esi + 0x1e0]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 0x30]
movaps xmm1, xmmword [esi + 0xc0]
mov ecx, dword [ebp + 8]
mov dword [esi + 0x248], 0xe
movss xmm2, dword [eax*4 + 0x8f8844]
movaps xmm0, xmm1
mov eax, dword [esi + 0xa0]
shufps xmm1, xmm1, 0x55
mulss xmm2, dword [esi + 0x70]
subss xmm0, xmm2
movaps xmm2, xmmword [esi + 0xe0]
mulss xmm2, dword [eax*4 + 0x8f88b0]
subss xmm1, xmm2
call fcn.0051c290
mov ebx, dword [esi + 0xa0]
mov edi, dword [esi + 0x30]
cmp byte [esi + 0xd7], 0
unpcklps xmm0, xmm1
movss xmm3, dword [ebx*4 + 0x8f88bc]
movss xmm2, dword [edi*4 + 0x8f8850]
unpcklps xmm2, xmm3
movaps xmm3, xmmword [esi + 0x70]
mulps xmm2, xmm3
addps xmm0, xmm2
je 0x5382f4
movaps xmm2, xmm3
movss xmm3, dword [ebx*4 + 0x8f88c8]
movss xmm1, dword [edi*4 + 0x8f885c]
mov eax, dword [esi + 0x188]
mov edx, dword [ebp + 8]
lea ecx, [esi + 0x1d0]
unpcklps xmm1, xmm3
mov dword [esi + 0x118], eax
lea eax, [esi + 0x108]
mulps xmm1, xmm2
subps xmm0, xmm1
movsd xmm1, qword [esi + 0x180]
movlps qword [esi + 0x18c], xmm0
addps xmm0, xmm2
movsd xmm2, qword [esi + 0x178]
movlps qword [esi + 0x194], xmm0
movsd qword [esi + 0x110], xmm1
movsd qword [esi + 0x108], xmm2
push eax
lea eax, [esi + 0x18c]
push eax
call fcn.0051c400
add esp, 8
mov eax, dword [esi + 0xa0]
movsd xmm0, qword [esi + 0x1d0]
movss xmm1, dword [eax*4 + 0x8f88d4]
mov eax, dword [esi + 0x30]
movss xmm2, dword [eax*4 + 0x8f8868]
unpcklps xmm2, xmm1
mulps xmm2, xmmword [esi + 0x70]
addps xmm2, xmm0
movaps xmmword [esi + 0x10], xmm2
jmp 0x5382f8
movaps xmmword [esi + 0x10], xmm0
mov edi, dword [esi + 0x1a0]
lea eax, [edi + 0x10]
push 0x58
lea ecx, [esi + 0x1e0]
push ecx
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 0x54]
movaps xmm0, xmmword [esi + 0x10]
movzx edx, byte [esi + 0x5e]
movzx ecx, byte [esi + 0xd6]
movzx ebx, byte [esi + 0x5d]
cmp byte [esi + 0x43], 2
movsd xmm1, qword [esi + 0x180]
mov dword [edi + 4], eax
mov eax, dword [esi + 0x4c]
mov dword [edi], eax
movzx eax, byte [esi + 0xb]
mov byte [edi + 8], al
movlps qword [edi + 0x68], xmm0
movaps xmm0, xmmword [esi + 0x70]
movzx eax, word [esi + 0x44]
movlps qword [edi + 0x70], xmm0
mov word [edi + 0x78], ax
mov byte [edi + 0x7a], dl
mov byte [edi + 0x7b], cl
mov edx, dword [esi + 0x188]
movsd xmm0, qword [esi + 0x178]
mov ecx, dword [esi + 0x240]
mov byte [edi + 0x90], bl
movsd qword [edi + 0x84], xmm1
mov dword [edi + 0x8c], edx
movsd qword [edi + 0x7c], xmm0
sete byte [edi + 0x91]
mov dword fs:[0], ecx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
lea ecx, [edi + 8]
mov dword [esi + 0x248], 0xffffffff
call fcn.00719890
movaps xmm7, xmmword [esi + 0xc0]
movaps xmm4, xmmword [esi + 0x70]
mov ecx, dword [edi + 0x1fc]
lock inc dword [ecx]
jg 0x537935
ud2
cmp cl, byte [esi + 0xb]
jne 0x537d11
mov eax, dword [esi + 0x10]
xor edx, dword [esi + 0x54]
xor eax, dword [esi + 0x4c]
or edx, eax
je 0x537f77
jmp 0x537d11
lea ecx, [edi + 8]
mov dword [esi + 0x248], 0xffffffff
movaps xmmword [esi + 0xf0], xmm5
call fcn.00719890
movaps xmm1, xmmword [esi + 0xe0]
movaps xmm5, xmmword [esi + 0xf0]
movaps xmm4, xmmword [esi + 0x70]
jmp 0x537698
add edi, 8
mov ebx, ecx
mov dword [esi + 0x248], 0xffffffff
mov ecx, edi
call fcn.00719c10
movaps xmm7, xmmword [esi + 0xc0]
movaps xmm4, xmmword [esi + 0x70]
mov ecx, ebx
jmp 0x53794e
movss xmm0, dword [0x725640]
addss xmm2, xmm7
mulss xmm2, xmm0
mulss xmm0, xmm4
subss xmm2, xmm0
ucomiss xmm1, dword [0x7258a0]
jae 0x537723
jmp 0x537733
movss xmm0, dword [0x725640]
addss xmm3, xmm6
mulss xmm3, xmm0
mulss xmm0, xmm1
subss xmm3, xmm0
jmp 0x53776f
add edi, 8
mov dword [esi + 0x248], 0xffffffff
movaps xmmword [esi + 0xf0], xmm5
movaps xmmword [esi + 0x10], xmm2
movaps xmmword [esi + 0xc0], xmm3
movss dword [esi + 0x80], xmm6
movss dword [esi + 0x60], xmm7
mov ecx, edi
call fcn.00719c10
movss xmm7, dword [esi + 0x60]
movss xmm6, dword [esi + 0x80]
movaps xmm3, xmmword [esi + 0xc0]
movaps xmm2, xmmword [esi + 0x10]
movaps xmm1, xmmword [esi + 0xe0]
movaps xmm5, xmmword [esi + 0xf0]
movaps xmm4, xmmword [esi + 0x70]
ucomiss xmm4, dword [0x7258a0]
jae 0x5376d7
jmp 0x5376e7
movss xmm1, dword [eax + 0xc]
movss xmm0, dword [0x726634]
xor edx, edx
addss xmm1, dword [0x726634]
movlhps xmm1, xmm2
shufps xmm1, xmm2, 0xe2
movaps xmm3, xmm1
jmp 0x538537
add edx, 0x10
cmp ecx, edx
je 0x538557
movss xmm1, dword [eax + edx + 0xc]
movaps xmm2, xmm3
shufps xmm2, xmm3, 0x55
addss xmm1, xmm0
ucomiss xmm2, xmm1
jbe 0x538530
movss xmm3, dword [eax + edx]
unpcklps xmm3, xmm1
jmp 0x538530
movaps xmmword [esi + 0x30], xmm3
cmp dword [esi + 0x10c], 0
jne 0x5375cf
jmp 0x5375de
xor edx, edx
jmp 0x537f46
mov eax, dword [esi + 0x50]
lea ecx, [esi + 0x108]
mov edx, 0x8ccaa0
mov dword [esi + str.Index_out_of_bounds], 0x8cca38
mov dword [esi + 0x10c], 1
mov dword [esi + 0x118], 0
mov dword [esi + 0x110], str.not_implementedC:Users_runneradmin.cargo_registry_srcindex.crates.io_6f17d22bba15001fwinit_0.28.6_srcplatform_implwindowsdrop_handler.rs
mov dword [esi + 0x114], 0
mov dword [esi + 0x98], edi
mov dword [esi + 0x248], 8
mov dword [esi + 0x9c], eax
call fcn.00709f70
jmp 0x53888e
mov eax, dword [esi + 0x50]
lea ecx, [esi + 0x108]
mov edx, 0x8ccab0
mov dword [esi + str.Index_out_of_bounds], 0x8cca38
mov dword [esi + 0x10c], 1
mov dword [esi + 0x118], 0
mov dword [esi + 0x110], str.not_implementedC:Users_runneradmin.cargo_registry_srcindex.crates.io_6f17d22bba15001fwinit_0.28.6_srcplatform_implwindowsdrop_handler.rs
mov dword [esi + 0x114], 0
mov dword [esi + 0x98], edi
mov dword [esi + 0x248], 8
mov dword [esi + 0x9c], eax
call fcn.00709f70
jmp 0x53888e
mov ecx, dword [esi + 0x50]
mov eax, dword [esi + 0x80]
mov dword [esi + 0x248], 8
mov dword [esi + 0x9c], ecx
mov ecx, dword [esi + 0x60]
mov dword [esi + 0x98], eax
push 0x8ccac0
call fcn.0070a2f0
add esp, 4
jmp 0x53888e
mov ecx, dword [esi + 0x50]
mov eax, dword [esi + 0x80]
mov dword [esi + 0x248], 8
mov dword [esi + 0x9c], ecx
mov ecx, edx
mov edx, dword [esi + 0xc]
mov dword [esi + 0x98], eax
push 0x8ccac0
call fcn.0070a080
add esp, 4
jmp 0x53888e
mov dword [esi + 0x248], 9
mov ecx, str.called__Option::unwrap____on_a__None__value_rustc_d5c2e9c342b358556da91d61ed4133f6f50fc0c3library_std_src_synconce.rs
mov edx, 0x2b
push 0x740db8
call fcn.0070a0f0
add esp, 4
jmp 0x53888e
mov eax, dword [esi + 0x80]
mov ecx, dword [esi + 0x50]
mov dword [esi + 0x248], 8
mov edx, 0x2c
mov dword [esi + 0x9c], ecx
mov dword [esi + 0x98], eax
mov ecx, str.assertion_failed:_end___start__end___len_
push 0x8ccb3c
call fcn.0070a0f0
add esp, 4
jmp 0x53888e
mov eax, dword [esi + 0x80]
mov ecx, dword [esi + 0x30]
mov dword [esi + 0x248], 8
mov edx, 0x2b
mov dword [esi + 0x9c], ecx
mov dword [esi + 0x98], eax
mov ecx, str.called__Option::unwrap____on_a__None__value_rustc_d5c2e9c342b358556da91d61ed4133f6f50fc0c3library_std_src_synconce.rs
push 0x8ccaf0
call fcn.0070a0f0
add esp, 4
jmp 0x53888e
mov ecx, dword [esi + 0x50]
mov edx, dword [esi + 0x48]
mov dword [esi + 0x98], eax
mov dword [esi + 0x9c], ecx
mov ecx, dword [esi + 0x70]
push 0x8ccb00
call fcn.0070a2f0
add esp, 4
jmp 0x53888e
mov ebx, dword [esi + 0x80]
mov edi, dword [esi + 0x50]
mov ecx, eax
mov dword [esi + 0x248], 8
mov dword [esi + 0x98], ebx
mov dword [esi + 0x9c], edi
push 0x8cca90
call fcn.0070a2f0
add esp, 4
jmp 0x53888e
mov eax, dword [esi + 0x80]
mov ecx, dword [esi + 0x50]
mov dword [esi + 0x248], 8
mov dword [esi + 0x9c], ecx
mov ecx, edx
mov dword [esi + 0x98], eax
mov edx, ebx
push 0x8cca90
call fcn.0070a080
add esp, 4
jmp 0x53888e
mov ecx, 4
mov edx, 0x10
mov dword [esi + 0x248], 3
call fcn.00709d20
jmp 0x53888e
mov ecx, 4
mov edx, 0x10
mov dword [esi + 0x248], 6
call fcn.00709d20
jmp 0x53888e
mov dword [esi + 0x248], 6
mov ecx, str.called__Option::unwrap____on_a__None__value_rustc_d5c2e9c342b358556da91d61ed4133f6f50fc0c3library_std_src_synconce.rs
mov edx, 0x2b
push 0x8ccad0
call fcn.0070a0f0
add esp, 4
jmp 0x53888e
mov dword [esi + 0x248], 7
mov ecx, str.called__Option::unwrap____on_a__None__value_rustc_d5c2e9c342b358556da91d61ed4133f6f50fc0c3library_std_src_synconce.rs
mov edx, 0x2b
push 0x8ccae0
call fcn.0070a0f0
add esp, 4
jmp 0x53888e
mov dword [esi + 0x248], 2
call fcn.00425040
jmp 0x53888e
mov dword [esi + 0x248], 2
call fcn.00425040
jmp 0x53888e
mov dword [esi + 0x248], 9
mov ecx, str.called__Option::unwrap____on_a__None__value_rustc_d5c2e9c342b358556da91d61ed4133f6f50fc0c3library_std_src_synconce.rs
mov edx, 0x2b
push 0x740da8
call fcn.0070a0f0
add esp, 4
ud2