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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x290
mov esi, esp
mov dword [esi + 0x278], ebp
mov dword [esi + 0x27c], esp
mov dword [esi + 0x288], 0xffffffff
mov dword [esi + 0x284], 0x704510
mov ebx, edx
mov edx, dword [ebp + 8]
mov dword [esi + 0x234], ecx
mov eax, dword fs:[0]
mov dword [esi + 0x2c], ebx
mov dword [esi + 0x280], eax
lea eax, [esi + 0x280]
mov dword fs:[0], eax
movzx eax, byte [ebx + 0x3d]
cmp al, 2
jne 0x52ca7e
mov edi, dword [edx + 0xe0]
mov eax, dword [edi + 8]
lea ecx, [edi + 8]
test al, 8
jne 0x52c960
mov edx, eax
add edx, 0x10
jb 0x52c960
lock cmpxchg dword [ecx], edx
je 0x52c983
mov byte [esi + 5], 1
mov byte [esi + 6], 1
mov dword [esi + 0x288], 0
mov dword [esi + 0x10], ecx
mov dword [esi + 0x50], edi
call fcn.00719890
mov edi, dword [esi + 0x50]
mov ecx, dword [esi + 0x10]
mov eax, 0xfffffff0
movzx edx, byte [edi + 0x214]
lock xadd dword [edi + 8], eax
and eax, 0xfffffff2
cmp eax, 0x12
jne 0x52c9ba
mov byte [esi + 5], 1
mov byte [esi + 6], 1
mov dword [esi + 0x288], 0
mov byte [esi + 0x10], dl
call fcn.00719c10
movzx edx, byte [esi + 0x10]
movzx eax, dl
mov edx, dword [ebp + 8]
mov ebx, dword [esi + 0x2c]
shl eax, 0x10
mov dword [esi + 8], eax
mov ecx, dword [ebx]
cmp ecx, 3
je 0x52ca98
movzx eax, byte [edx + 0xbd]
xor edi, edi
cmp ecx, 2
mov dword [esi + 0x120], 3
mov byte [esi + 0x10], al
movzx eax, byte [edx + 0xbb]
mov byte [esi + 0x30], al
movzx eax, byte [edx + 0xbc]
mov edx, dword [edx + 0x100]
mov byte [esi + 0x50], al
lea eax, [ecx - 1]
cmovae edi, eax
mov eax, dword [ebx + 4]
test edi, edi
mov dword [esi + 0x48], eax
lea eax, [ebx + 8]
je 0x52cb58
cmp edi, 1
jne 0x52cc24
mov ecx, dword [esi + 0x48]
movsd xmm1, qword [eax + 8]
movsd xmm0, qword [eax]
movsd xmm2, qword [eax + 0x18]
mov dword [esi + 0x68], ecx
movsd qword [esi + 0x74], xmm1
movsd xmm1, qword [eax + 0x10]
movsd qword [esi + 0x6c], xmm0
movsd qword [esi + 0x84], xmm2
movsd qword [esi + 0x7c], xmm1
movsd xmm1, qword [eax + 0x20]
mov eax, dword [eax + 0x28]
mov dword [esi + 0x94], eax
movsd qword [esi + 0x8c], xmm1
mov byte [esi + 0x98], 1
mov eax, 3
jmp 0x52cecb
movzx ecx, word [ebx + 0x3e]
movzx eax, al
shl ecx, 8
or eax, ecx
mov dword [esi + 8], eax
mov ecx, dword [ebx]
cmp ecx, 3
jne 0x52c9d4
mov eax, dword [ebx + 4]
lea ecx, [esi + 0xb8]
mov dword [esi + 0x120], eax
mov dword [esi + 0x10], eax
movss xmm0, dword [eax + 0x20]
movss xmm1, dword [eax + 0x24]
subss xmm0, dword [eax + 0x18]
subss xmm1, dword [eax + 0x1c]
mov dword [esi + 0x288], 0x10
push dword [esi + 8]
call fcn.0052fd10
add esp, 4
movss xmm0, dword [esi + 0xb8]
lea eax, [esi + 0xc8]
lea edi, [esi + 0x178]
movss dword [esi + 0x50], xmm0
movss xmm0, dword [esi + 0xbc]
movaps xmmword [esi + 0x260], xmm0
movss xmm0, dword [esi + 0xc0]
movaps xmmword [esi + 0x1d0], xmm0
push 0x58
push eax
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov ebx, dword [esi + 0x10]
mov eax, dword [ebx + 8]
movzx eax, byte [eax + 0x36]
test eax, eax
je 0x52cc8e
cmp eax, 2
je 0x52cc9a
movss xmm0, dword [esi + 0x50]
lea eax, [esi + 0xb8]
addss xmm0, dword [esi + 0x1d0]
mulss xmm0, dword [0x725640]
movaps xmmword [esi + 0x1d0], xmm0
jmp 0x52cca0
mov dword [esi + 0xb8], ecx
mov ecx, dword [esi + 0x48]
movsd xmm0, qword [eax]
movsd xmm2, qword [eax + 0x10]
add edx, 8
cmp byte [esi + 0x10], 2
movzx ebx, byte [esi + 0x50]
movsd xmm1, qword [eax + 8]
movsd xmm3, qword [eax + 0x18]
movsd xmm4, qword [eax + 0x20]
movsd xmm5, qword [eax + 0x28]
mov eax, dword [eax + 0x30]
mov byte [esi + 0xc], 0
mov dword [esi + 0x288], 0xd
mov edi, edx
movzx edx, byte [esi + 0x30]
mov dword [esi + 0xbc], ecx
movsd qword [esi + 0xc0], xmm0
movsd qword [esi + 0xd0], xmm2
movsd xmm0, qword [esi + 0x120]
movsd xmm2, qword [esi + 0x128]
mov dword [esi + 0xf0], eax
movsd qword [esi + 0xc8], xmm1
movsd qword [esi + 0xd8], xmm3
movsd qword [esi + 0xe0], xmm4
movsd qword [esi + 0xe8], xmm5
lea eax, [esi + 0x178]
lea ecx, [esi + 0x68]
cmovae ebx, edx
lea edx, [esi + 0xb8]
movsd qword [esi + 0x180], xmm2
movsd qword [esi + 0x178], xmm0
push ebx
push eax
push edi
call fcn.005574b0
add esp, 0xc
mov edi, dword [ebp + 8]
mov ebx, dword [esi + 0x2c]
jmp 0x52cf24
mov eax, dword [esi + 0x48]
mov dword [esi + 0xb8], eax
mov eax, dword [eax + 8]
mov ebx, dword [eax + 0x20]
mov edi, dword [eax + 0x18]
mov dword [esi + 0x1d0], eax
test ebx, ebx
je 0x52ccb3
js 0x52e6ed
movzx eax, byte [0x919aa5]
mov eax, dword [0x919820]
test eax, eax
jne 0x52cc65
call dword [sym.imp.kernel32.dll_GetProcessHeap]
test eax, eax
je 0x52cc73
mov dword [0x919820], eax
push ebx
push 0
push eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
test eax, eax
jne 0x52ccb8
mov ecx, 1
mov edx, ebx
mov dword [esi + 0x288], 0xe
call fcn.00709d20
jmp 0x52e768
movss xmm0, dword [esi + 0x50]
movaps xmmword [esi + 0x1d0], xmm0
lea eax, [esi + 0xb8]
push 0x58
push edi
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov al, 1
jmp 0x52da3f
mov eax, 1
push ebx
push edi
mov dword [esi + 0x22c], eax
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov edx, dword [esi + 0x1d0]
mov dword [esi + 0x230], ebx
mov ecx, dword [edx + 0x2c]
test ecx, ecx
mov dword [esi + 0x260], ecx
je 0x52ce16
xor ebx, ebx
cmp ecx, 0x2492493
setb al
jae 0x52e6fe
mov bl, al
imul edi, ecx, 0x38
shl ebx, 2
test edi, edi
mov dword [esi + 0x210], edi
js 0x52e70f
mov eax, dword [edx + 0x24]
mov dword [esi + 0x10], ebx
mov dword [esi + 0x4c], eax
je 0x52dcdb
movzx eax, byte [0x919aa5]
mov eax, dword [0x919820]
test eax, eax
jne 0x52cd3f
call dword [sym.imp.kernel32.dll_GetProcessHeap]
test eax, eax
je 0x52dce5
mov dword [0x919820], eax
push dword [esi + 0x210]
push 0
push eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
test eax, eax
je 0x52dce5
mov edx, dword [esi + 0x260]
mov ebx, dword [esi + 0x4c]
xor ecx, ecx
jmp 0x52cdc8
movzx edi, word [ebx + 0x28]
movups xmm3, xmmword [ebx + 0x18]
movsd xmm4, qword [ebx + 0x10]
dec edx
add ebx, 0x38
mov word [esi + 0x50], di
mov edi, dword [esi + 0x10]
mov dword [eax + ecx], edi
mov edi, dword [esi + 0x30]
mov dword [eax + ecx + 4], edi
mov edi, dword [esi + 0xa0]
mov dword [eax + ecx + 8], edi
movzx edi, word [esi + 0x50]
movss dword [eax + ecx + 0xc], xmm2
movsd qword [eax + ecx + 0x10], xmm4
movups xmmword [eax + ecx + 0x18], xmm3
mov word [eax + ecx + 0x28], di
movss dword [eax + ecx + 0x2c], xmm0
movlps qword [eax + ecx + 0x30], xmm1
add ecx, 0x38
test edx, edx
je 0x52ce0e
cmp dword [esi + 0x210], ecx
je 0x52ce0e
mov edi, dword [ebx]
movss xmm0, dword [ebx + 0x2c]
movsd xmm1, qword [ebx + 0x30]
movss xmm2, dword [ebx + 0xc]
cmp edi, 2
mov dword [esi + 0x10], edi
jb 0x52cd70
mov edi, dword [esi + 0x4c]
mov edi, dword [edi + ecx + 4]
mov dword [esi + 0x30], edi
lock inc dword [edi]
jle 0x52e609
mov edi, dword [esi + 0x4c]
mov edi, dword [edi + ecx + 8]
mov dword [esi + 0xa0], edi
jmp 0x52cd70
mov edx, dword [esi + 0x1d0]
jmp 0x52ce1b
mov eax, 4
movss xmm0, dword [edx + 0xc]
movss xmm1, dword [edx + 0x30]
mov ch, byte [edx + 0x14]
mov cl, byte [edx + 0x36]
mov edi, dword [edx + 0x10]
mov ebx, dword [edx + 8]
movzx edx, word [edx + 0x34]
mov dword [esi + 0x84], eax
mov eax, dword [esi + 0x260]
mov dword [esi + 0x88], eax
mov dword [esi + 0x8c], eax
movzx eax, word [esi + 0x178]
mov word [esi + 0x75], ax
movzx eax, byte [esi + 0x17a]
mov byte [esi + 0x77], al
mov eax, dword [esi + 0x22c]
mov dword [esi + 0x78], eax
mov eax, dword [esi + 0x230]
mov dword [esi + 0x7c], eax
mov dword [esi + 0x80], eax
mov dword [esi + 0x68], ebx
movss dword [esi + 0x6c], xmm0
mov dword [esi + 0x70], edi
mov byte [esi + 0x74], ch
movss dword [esi + 0x90], xmm1
mov word [esi + 0x94], dx
mov byte [esi + 0x96], cl
mov ecx, dword [esi + 0x48]
mov byte [esi + 0x98], 1
lock dec dword [ecx]
jne 0x52cec5
mov ecx, dword [esi + 0xb8]
mov byte [esi + 0xc], 1
mov dword [esi + 0x288], 0xd
call fcn.00563190
mov eax, dword [esi + 0x120]
lea edx, [eax - 3]
mov ebx, dword [esi + 0x2c]
mov edi, dword [ebp + 8]
mov ecx, 1
cmp edx, 3
cmovb ecx, edx
test ecx, ecx
je 0x52cf24
cmp ecx, 1
jne 0x52cf00
cmp eax, 2
jb 0x52cf24
mov eax, dword [esi + 0x124]
lock dec dword [eax]
jne 0x52cf24
lea eax, [esi + 0x124]
jmp 0x52cf1a
cmp dword [esi + 0x124], 5
jb 0x52cf24
mov eax, dword [esi + 0x128]
lock dec dword [eax]
jne 0x52cf24
lea eax, [esi + 0x128]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
call fcn.004f2ff0
movzx ebx, byte [ebx + 0x3c]
cmp bl, 2
jne 0x52cf77
mov eax, dword [edi + 0x100]
movzx ebx, byte [eax + 0x21b]
cmp bl, 2
jne 0x52cf74
cmp dword [edi], 2
jne 0x52cf5a
cmp byte [edi + 0xbd], 2
mov ebx, 1
jae 0x52cf74
mov ebx, dword [edi + 0xb8]
jmp 0x52cf74
mov eax, 0x7fffffff
movss xmm1, dword [0x7258a0]
and eax, dword [edi + 0x60]
movd xmm0, eax
ucomiss xmm1, xmm0
seta bl
and bl, 1
mov ecx, edi
call fcn.005558c0
movzx eax, byte [edi + 0xbd]
test bl, bl
je 0x52d084
test al, al
jne 0x52d084
cmp byte [edi + 0xb8], 0
je 0x52d084
movaps xmm2, xmmword [0x725610]
movss xmm1, dword [0x7258a0]
andps xmm2, xmm0
ucomiss xmm1, xmm2
jbe 0x52d088
movss xmm6, dword [edi + 0xac]
movss xmm7, dword [edi + 0xb4]
cmp dword [edi], 2
jne 0x52d449
movss xmm5, dword [edi + 0x9c]
movups xmm1, xmmword [edi + 0xa8]
movsd xmm2, qword [edi + 0xa0]
movaps xmm3, xmm5
movlhps xmm3, xmm1
shufps xmm3, xmm1, 0xe2
movaps xmm4, xmm3
maxps xmm3, xmm2
cmpunordps xmm2, xmm2
andps xmm4, xmm2
andnps xmm2, xmm3
movaps xmm3, xmm6
maxss xmm3, xmm5
cmpunordss xmm5, xmm5
orps xmm2, xmm4
movaps xmm4, xmm5
andnps xmm5, xmm3
movups xmm3, xmmword [edi + 0xb0]
andps xmm4, xmm6
orps xmm5, xmm4
movaps xmm4, xmm7
movlhps xmm5, xmm1
movlhps xmm4, xmm3
shufps xmm5, xmm1, 0xe2
shufps xmm4, xmm3, 0xe2
movaps xmm3, xmm4
minps xmm3, xmm2
cmpunordps xmm2, xmm2
andps xmm4, xmm2
andnps xmm2, xmm3
orps xmm2, xmm4
movaps xmm4, xmm2
movaps xmm1, xmm2
addps xmm4, xmm5
cmpltps xmm1, xmm5
mulps xmm4, xmmword [0x7255f0]
movd eax, xmm1
test al, 1
movaps xmm3, xmm4
jne 0x52d06f
movaps xmm3, xmm2
andps xmm4, xmm1
andnps xmm1, xmm5
orps xmm1, xmm4
movlps qword [esi + 0xb8], xmm1
jmp 0x52d488
test bl, bl
je 0x52d0a6
cmp dword [edi], 2
movss dword [esi + 0x6c], xmm0
jne 0x52d0b8
movzx ecx, al
lea edx, [ecx - 2]
cmp edx, 2
jae 0x52d0c3
movzx ecx, byte [edi + 0xbc]
jmp 0x52d0cb
movss xmm0, dword [0x7258a0]
cmp dword [edi], 2
movss dword [esi + 0x6c], xmm0
je 0x52d092
mov word [esi + 0x95], 0
jmp 0x52d0e6
test ecx, ecx
mov ecx, eax
je 0x52d0cb
mov cl, 2
mov byte [esi + 0x96], cl
cmp al, 2
mov ecx, edi
sbb ecx, 0
cmp byte [ecx + 0xba], 0
setne byte [esi + 0x95]
movsd xmm1, qword [esi + 0x88]
movsd xmm2, qword [esi + 0x80]
mov eax, dword [esi + 0x98]
movsd xmm0, qword [esi + 0x90]
mov edi, dword [edi + 0xe0]
movsd qword [esi + 0x198], xmm1
movsd xmm1, qword [esi + 0x78]
movsd qword [esi + 0x190], xmm2
movsd xmm2, qword [esi + 0x68]
mov dword [esi + 0x1a8], eax
movsd qword [esi + 0x1a0], xmm0
lea ecx, [edi + 8]
movsd qword [esi + 0x188], xmm1
movsd xmm1, qword [esi + 0x70]
movsd qword [esi + 0x178], xmm2
movsd qword [esi + 0x180], xmm1
mov eax, dword [edi + 8]
mov dword [esi + 0xa0], ecx
test al, 8
jne 0x52d16c
mov edx, eax
add edx, 0x10
jb 0x52d16c
lock cmpxchg dword [ecx], edx
je 0x52d181
mov dword [esi + 0x288], 1
mov dword [esi + 0x10], edi
call fcn.00719890
mov edi, dword [esi + 0x10]
movsd xmm1, qword [esi + 0x198]
movsd xmm2, qword [esi + 0x190]
mov eax, dword [esi + 0x1a8]
movsd xmm0, qword [esi + 0x1a0]
movsd qword [esi + 0xd8], xmm1
movsd xmm1, qword [esi + 0x188]
movsd qword [esi + 0xd0], xmm2
movsd xmm2, qword [esi + 0x178]
mov dword [esi + 0xe8], eax
movsd qword [esi + 0xe0], xmm0
movsd qword [esi + 0xc8], xmm1
movsd xmm1, qword [esi + 0x180]
movsd qword [esi + 0xb8], xmm2
movsd qword [esi + 0xc0], xmm1
mov edx, dword [edi + 0x658]
test edx, edx
mov dword [esi + 0x30], edx
je 0x52e635
movsd xmm1, qword [esi + 0x198]
movsd xmm2, qword [esi + 0x190]
movsd xmm0, qword [esi + 0x1a0]
movzx eax, byte [esi + 0x1a8]
mov bl, 1
lea ecx, [edx + 8]
movsd qword [esi + 0x200], xmm1
movsd xmm1, qword [esi + 0x188]
movsd qword [esi + 0x1f8], xmm2
movsd xmm2, qword [esi + 0x178]
mov byte [esi + 0x50], al
movsd qword [esi + 0x208], xmm0
xor eax, eax
movsd qword [esi + 0x1f0], xmm1
movsd xmm1, qword [esi + 0x180]
movsd qword [esi + 0x1e0], xmm2
movsd qword [esi + 0x1e8], xmm1
lock cmpxchg byte [edx + 8], bl
mov dword [esi + 0x210], ecx
je 0x52d28f
mov byte [esi + 0xd], 1
mov dword [esi + 0x288], 3
call fcn.0071aab0
movsd xmm1, qword [esi + 0x200]
movsd xmm2, qword [esi + 0x1f8]
mov eax, dword [esi + 0x30]
movsd xmm0, qword [esi + 0x208]
lea edx, [esi + 0x120]
mov dword [esi + 0x288], 4
movsd qword [esi + 0x140], xmm1
movsd xmm1, qword [esi + 0x1f0]
movsd qword [esi + 0x138], xmm2
movsd xmm2, qword [esi + 0x1e0]
lea ecx, [eax + 0x10]
movsd qword [esi + 0x148], xmm0
movsd qword [esi + 0x130], xmm1
movsd xmm1, qword [esi + 0x1e8]
movsd qword [esi + 0x120], xmm2
movsd qword [esi + 0x128], xmm1
call fcn.005a4b00
mov ecx, dword [esi + 0x210]
mov edi, eax
xor edx, edx
mov al, 1
lock cmpxchg byte [ecx], dl
mov dword [esi + 0x10], edi
je 0x52d335
mov byte [esi + 0xd], 0
mov dword [esi + 0x288], 3
call fcn.0071ade0
mov edi, dword [esi + 0x10]
mov ecx, dword [esi + 0xa0]
mov eax, 0xfffffff0
lock xadd dword [ecx], eax
and eax, 0xfffffff2
cmp eax, 0x12
jne 0x52d366
mov byte [esi + 5], 0
mov byte [esi + 6], 0
mov dword [esi + 0x288], 0
call fcn.00719c10
mov edi, dword [esi + 0x10]
movzx eax, byte [esi + 0x50]
mov dword [esi + 0x120], edi
mov edx, dword [ebp + 8]
lea ecx, [esi + 0xb8]
mov byte [esi + 0x124], al
movss xmm0, dword [edi + 0x20]
movss xmm1, dword [edi + 0x24]
subss xmm0, dword [edi + 0x18]
subss xmm1, dword [edi + 0x1c]
mov dword [esi + 0x288], 5
push dword [esi + 8]
call fcn.0052fd10
add esp, 4
movss xmm0, dword [esi + 0xb8]
lea eax, [esi + 0xc8]
lea edi, [esi + 0x178]
movss dword [esi + 0x30], xmm0
movss xmm0, dword [esi + 0xbc]
movaps xmmword [esi + 0x260], xmm0
movss xmm0, dword [esi + 0xc0]
movaps xmmword [esi + 0x1d0], xmm0
push 0x58
push eax
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov ebx, dword [esi + 0x10]
mov eax, dword [ebx + 8]
movzx eax, byte [eax + 0x36]
test eax, eax
je 0x52d422
cmp eax, 2
je 0x52d42e
movss xmm0, dword [esi + 0x30]
lea eax, [esi + 0xb8]
addss xmm0, dword [esi + 0x1d0]
mulss xmm0, dword [0x725640]
movaps xmmword [esi + 0x1d0], xmm0
jmp 0x52d434
movss xmm0, dword [esi + 0x30]
movaps xmmword [esi + 0x1d0], xmm0
lea eax, [esi + 0xb8]
push 0x58
push edi
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
movzx eax, byte [esi + 0x50]
jmp 0x52da3f
lea eax, [edi + 0x88]
lea ecx, [esi + 0xb8]
mov edx, edi
push eax
movaps xmmword [esi + 0x10], xmm0
movaps xmmword [esi + 0x50], xmm6
movaps xmmword [esi + 0x30], xmm7
call fcn.00555760
movaps xmm7, xmmword [esi + 0x30]
movaps xmm6, xmmword [esi + 0x50]
movaps xmm0, xmmword [esi + 0x10]
add esp, 4
movss xmm1, dword [esi + 0xb8]
movss xmm3, dword [esi + 0xc0]
subss xmm7, xmm6
movss dword [esi + 0x6c], xmm0
movss dword [esi + 0x90], xmm7
mov word [esi + 0x95], 0
cmp dword [esi + 0x8c], 0
je 0x52d4c2
mov eax, dword [esi + 0x84]
test eax, eax
je 0x52d4c2
subss xmm3, xmm1
subss xmm0, xmm3
movss dword [eax + 0x2c], xmm0
movsd xmm1, qword [esi + 0x88]
movsd xmm2, qword [esi + 0x80]
mov eax, dword [esi + 0x98]
movsd xmm0, qword [esi + 0x90]
mov edi, dword [edi + 0xe0]
movsd qword [esi + 0x198], xmm1
movsd xmm1, qword [esi + 0x78]
movsd qword [esi + 0x190], xmm2
movsd xmm2, qword [esi + 0x68]
mov dword [esi + 0x1a8], eax
movsd qword [esi + 0x1a0], xmm0
lea ecx, [edi + 8]
movsd qword [esi + 0x188], xmm1
movsd xmm1, qword [esi + 0x70]
movsd qword [esi + 0x178], xmm2
movsd qword [esi + 0x180], xmm1
mov eax, dword [edi + 8]
mov dword [esi + 0x30], ecx
test al, 8
jne 0x52d545
mov edx, eax
add edx, 0x10
jb 0x52d545
lock cmpxchg dword [ecx], edx
je 0x52d55a
mov dword [esi + 0x288], 6
mov dword [esi + 0x10], edi
call fcn.00719890
mov edi, dword [esi + 0x10]
movsd xmm1, qword [esi + 0x198]
movsd xmm2, qword [esi + 0x190]
mov eax, dword [esi + 0x1a8]
movsd xmm0, qword [esi + 0x1a0]
movsd qword [esi + 0xd8], xmm1
movsd xmm1, qword [esi + 0x188]
movsd qword [esi + 0xd0], xmm2
movsd xmm2, qword [esi + 0x178]
mov dword [esi + 0xe8], eax
movsd qword [esi + 0xe0], xmm0
movsd qword [esi + 0xc8], xmm1
movsd xmm1, qword [esi + 0x180]
movsd qword [esi + 0xb8], xmm2
movsd qword [esi + 0xc0], xmm1
mov edx, dword [edi + 0x658]
test edx, edx
mov dword [esi + 0x50], edx
je 0x52e683
movsd xmm1, qword [esi + 0x198]
movsd xmm2, qword [esi + 0x190]
movsd xmm0, qword [esi + 0x1a0]
movzx eax, byte [esi + 0x1a8]
mov bl, 1
lea ecx, [edx + 8]
movsd qword [esi + 0x200], xmm1
movsd xmm1, qword [esi + 0x188]
movsd qword [esi + 0x1f8], xmm2
movsd xmm2, qword [esi + 0x178]
mov byte [esi + 0x210], al
movsd qword [esi + 0x208], xmm0
xor eax, eax
movsd qword [esi + 0x1f0], xmm1
movsd xmm1, qword [esi + 0x180]
movsd qword [esi + 0x1e0], xmm2
movsd qword [esi + 0x1e8], xmm1
lock cmpxchg byte [edx + 8], bl
mov dword [esi + 0xa0], ecx
je 0x52d66b
mov byte [esi + 0xe], 1
mov dword [esi + 0x288], 8
call fcn.0071aab0
movsd xmm1, qword [esi + 0x200]
movsd xmm2, qword [esi + 0x1f8]
mov eax, dword [esi + 0x50]
movsd xmm0, qword [esi + 0x208]
lea edx, [esi + 0x120]
mov dword [esi + 0x288], 9
movsd qword [esi + 0x140], xmm1
movsd xmm1, qword [esi + 0x1f0]
movsd qword [esi + 0x138], xmm2
movsd xmm2, qword [esi + 0x1e0]
lea ecx, [eax + 0x10]
movsd qword [esi + 0x148], xmm0
movsd qword [esi + 0x130], xmm1
movsd xmm1, qword [esi + 0x1e8]
movsd qword [esi + 0x120], xmm2
movsd qword [esi + 0x128], xmm1
call fcn.005a4b00
mov ecx, dword [esi + 0xa0]
mov edx, eax
xor ebx, ebx
mov al, 1
lock cmpxchg byte [ecx], bl
mov dword [esi + 0x10], edx
je 0x52d711
mov byte [esi + 0xe], 0
mov dword [esi + 0x288], 8
call fcn.0071ade0
mov edx, dword [esi + 0x10]
mov ecx, dword [esi + 0x30]
mov eax, 0xfffffff0
lock xadd dword [ecx], eax
and eax, 0xfffffff2
cmp eax, 0x12
jne 0x52d73f
mov byte [esi + 5], 0
mov byte [esi + 6], 0
mov dword [esi + 0x288], 0
call fcn.00719c10
mov edx, dword [esi + 0x10]
movzx eax, byte [esi + 0x210]
mov ecx, dword [ebp + 8]
mov dword [esi + 0x238], edx
mov byte [esi + 0x23c], al
movss xmm1, dword [ecx + 0x98]
movss xmm0, dword [ecx + 0xac]
cmp dword [edx + 0x14], 0
mov dword [esi + 0x288], 0xa
je 0x52e6a9
mov eax, dword [edx + 0xc]
movaps xmmword [esi + 0x1d0], xmm1
unpcklps xmm1, xmm0
movaps xmmword [esi + 0x260], xmm0
lea edx, [esi + 0xb8]
movaps xmmword [esi + 0x210], xmm1
movsd xmm0, qword [eax + 0x40]
movsd xmm2, qword [eax + 0x48]
addps xmm1, xmm0
subps xmm2, xmm0
addps xmm2, xmm1
movaps xmm0, xmm1
movaps xmmword [esi + 0xa0], xmm1
movlhps xmm0, xmm2
movaps xmmword [esi + 0x30], xmm2
movups xmmword [esi + 0xb8], xmm0
call fcn.0052f8d0
mov dword [esi + 0x50], eax
movaps xmm0, xmmword [esi + 0xa0]
mov eax, dword [ebp + 8]
mov edi, edx
movlps qword [esi + 0xb8], xmm0
movaps xmm0, xmmword [esi + 0x30]
movsd xmm1, qword [eax + 0xd8]
mov ecx, dword [eax + 0x100]
movzx ebx, byte [eax + 0x108]
lea edx, [eax + 0xe0]
mov dword [esi + 0x4c], edx
movlps qword [esi + 0xc0], xmm0
movsd xmm0, qword [eax + 0xd0]
movsd qword [esi + 0x180], xmm1
movsd qword [esi + 0x178], xmm0
movss xmm0, dword [ecx + 0x3c]
movss xmm1, dword [ecx + 0x40]
lea ecx, [esi + 0x120]
push ebx
push dword [esi + 8]
lea ebx, [esi + 0xb8]
push ebx
push edi
push dword [esi + 0x50]
push dword [eax + 0xc8]
push dword [eax + 0xc4]
push dword [eax + 0xc0]
lea eax, [esi + 0x178]
push eax
call fcn.00519df0
add esp, 0x24
mov edx, dword [ebp + 8]
lea ebx, [esi + 0xb8]
mov dword [esi + 0x50], 1
lea eax, [edx + 0xd0]
mov dword [esi + 0x48], eax
mov eax, dword [esi + 0x10]
mov ecx, dword [eax + 0xc]
mov eax, dword [eax + 0x14]
lea eax, [eax + eax*2]
mov dword [esi + 0x10], ecx
shl eax, 5
add eax, ecx
mov ecx, edx
mov dword [esi + 0xa0], eax
xor eax, eax
jmp 0x52d8c8
add dword [esi + 0x10], 0x60
push 0x58
lea ebx, [esi + 0xb8]
push ebx
lea eax, [esi + 0x120]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov ecx, dword [ebp + 8]
mov dword [esi + 0x50], 0
mov al, 1
test al, 1
je 0x52d8e0
mov edi, dword [esi + 0x10]
cmp edi, dword [esi + 0xa0]
jne 0x52d908
jmp 0x52da17
mov eax, dword [esi + 0xa0]
mov edi, dword [esi + 0x10]
mov edx, 0xaaaaaaab
sub eax, edi
mul edx
mov eax, dword [esi + 0x50]
shr edx, 6
cmp edx, eax
jbe 0x52da17
lea eax, [eax + eax*2]
shl eax, 5
add edi, eax
movsd xmm0, qword [edi + 0x40]
movsd xmm1, qword [edi + 0x48]
movaps xmm2, xmmword [esi + 0x210]
mov edx, ebx
mov dword [esi + 0x10], edi
mov dword [esi + 0x288], 0xb
addps xmm2, xmm0
subps xmm1, xmm0
addps xmm1, xmm2
movaps xmm0, xmm2
movaps xmmword [esi + 0x30], xmm2
movlhps xmm0, xmm1
movaps xmmword [esi + 0x50], xmm1
movups xmmword [esi + 0xb8], xmm0
call fcn.0052f8d0
movaps xmm0, xmmword [esi + 0x30]
mov ecx, dword [esi + 0x48]
mov ebx, dword [ebp + 8]
mov edi, edx
mov edx, dword [esi + 0x4c]
movlps qword [esi + 0xb8], xmm0
movaps xmm0, xmmword [esi + 0x50]
movsd xmm1, qword [ecx + 8]
movlps qword [esi + 0xc0], xmm0
movsd xmm0, qword [ecx]
mov ecx, dword [ebx + 0x100]
movsd qword [esi + 0x1e8], xmm1
movzx ebx, byte [ebx + 0x108]
movsd qword [esi + 0x1e0], xmm0
movss xmm0, dword [ecx + 0x3c]
movss xmm1, dword [ecx + 0x40]
lea ecx, [esi + 0x178]
push ebx
push dword [esi + 8]
lea ebx, [esi + 0xb8]
push ebx
push edi
push eax
mov eax, dword [ebp + 8]
push dword [eax + 0xc8]
push dword [eax + 0xc4]
push dword [eax + 0xc0]
lea eax, [esi + 0x1e0]
push eax
call fcn.00519df0
add esp, 0x24
lea eax, [esi + 0x178]
lea ecx, [esi + 0xb8]
lea edx, [esi + 0x120]
push eax
call fcn.00530040
add esp, 4
mov eax, dword [esi + 0x154]
lock dec dword [eax]
jne 0x52d8a0
mov ecx, dword [esi + 0x154]
mov dword [esi + 0x288], 0xc
call fcn.00562540
jmp 0x52d8a0
mov eax, ebx
mov ebx, dword [esi + 0x238]
movzx ecx, byte [esi + 0x23c]
mov byte [esi + 0x50], cl
push 0x58
lea ecx, [esi + 0x120]
push ecx
push eax
call sub.VCRUNTIME140.dll_memcpy
movzx eax, byte [esi + 0x50]
add esp, 0xc
mov dword [esi + 0x258], ebx
mov byte [esi + 0x50], al
mov byte [esi + 0x25c], al
lea eax, [esi + 0xb8]
lea ecx, [esi + 0x178]
push 0x58
push eax
push ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
cmp byte [esi + 0x1b6], 0
mov dword [esi + 0x10], ebx
je 0x52db08
mov eax, dword [ebx + 8]
lea ecx, [esi + 0x68]
mov edx, dword [eax + 0x18]
mov eax, dword [eax + 0x20]
mov dword [esi + 0x68], 1
mov dword [esi + 0x6c], 0
mov dword [esi + 0xd4], 0
mov dword [esi + 0xc8], 0x20
mov byte [esi + 0xd8], 3
mov dword [esi + 0xb8], 0
mov dword [esi + 0xc0], 0
mov dword [esi + 0xcc], ecx
mov dword [esi + 0x70], 0
mov dword [esi + 0xd0], 0x741520
mov dword [esi + 0x288], 0x1d
lea ecx, [esi + 0xb8]
push eax
call fcn.004277d0
add esp, 4
test al, al
jne 0x52e60d
movsd xmm0, qword [esi + 0x68]
mov eax, dword [esi + 0x70]
xor edi, edi
xor ebx, ebx
jmp 0x52ddcc
cmp byte [esi + 0x1bb], 0
je 0x52dbaa
mov eax, dword [ebx + 8]
lea ecx, [esi + 0x68]
mov edx, dword [eax + 0x18]
mov eax, dword [eax + 0x20]
mov dword [esi + 0x68], 1
mov dword [esi + 0x6c], 0
mov dword [esi + 0xd4], 0
mov dword [esi + 0xc8], 0x20
mov byte [esi + 0xd8], 3
mov dword [esi + 0xb8], 0
mov dword [esi + 0xc0], 0
mov dword [esi + 0xcc], ecx
mov dword [esi + 0x70], 0
mov dword [esi + 0xd0], 0x741520
mov dword [esi + 0x288], 0x1c
lea ecx, [esi + 0xb8]
push eax
call fcn.004277d0
add esp, 4
test al, al
jne 0x52e65b
movsd xmm0, qword [esi + 0x68]
mov eax, dword [esi + 0x70]
xor ebx, ebx
mov edi, 1
jmp 0x52ddcc
cmp byte [esi + 0x1c0], 0
je 0x52dc4c
mov eax, dword [ebx + 8]
lea ecx, [esi + 0x68]
mov edx, dword [eax + 0x18]
mov eax, dword [eax + 0x20]
mov dword [esi + 0x68], 1
mov dword [esi + 0x6c], 0
mov dword [esi + 0xd4], 0
mov dword [esi + 0xc8], 0x20
mov byte [esi + 0xd8], 3
mov dword [esi + 0xb8], 0
mov dword [esi + 0xc0], 0
mov dword [esi + 0xcc], ecx
mov dword [esi + 0x70], 0
mov dword [esi + 0xd0], 0x741520
mov dword [esi + 0x288], 0x1b
lea ecx, [esi + 0xb8]
push eax
call fcn.004277d0
add esp, 4
test al, al
jne 0x52e720
movsd xmm0, qword [esi + 0x68]
mov eax, dword [esi + 0x70]
xor ebx, ebx
mov edi, 2
jmp 0x52ddcc
mov ebx, dword [esi + 0x1ac]
mov eax, dword [ebx + 8]
lea ecx, [ebx + 8]
mov dword [esi + 0x30], ecx
test al, 8
jne 0x52dc6c
mov edx, eax
add edx, 0x10
jb 0x52dc6c
lock cmpxchg dword [ecx], edx
je 0x52dc85
mov byte [esi + 4], 1
mov dword [esi + 0x288], 0x11
mov dword [esi + 8], ebx
call fcn.00719890
mov ebx, dword [esi + 8]
mov edx, dword [ebx + 0x40]
mov eax, dword [esi + 0x18c]
mov edi, dword [ebx + 0x4c]
mov ecx, dword [esi + 0x188]
or edx, dword [ebx + 0x44]
mov dword [esi + 0xa0], eax
mov dword [esi + 8], ecx
setne dl
xor edi, eax
mov eax, ebx
mov ebx, dword [ebx + 0x48]
xor ebx, ecx
or ebx, edi
sete dh
xor ebx, ebx
test dl, dh
jne 0x52dd02
mov edx, dword [eax + 0x34]
or edx, dword [eax + 0x30]
mov edx, dword [esi + 0x30]
je 0x52dd05
mov ecx, dword [esi + 8]
mov edi, dword [esi + 0xa0]
xor ecx, dword [eax + 0x38]
xor edi, dword [eax + 0x3c]
or edi, ecx
sete bl
jmp 0x52dd05
mov eax, ebx
test eax, eax
jne 0x52cd56
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 0x210]
mov dword [esi + 0x288], 0xf
call fcn.00709d20
jmp 0x52e768
mov edx, dword [esi + 0x30]
mov eax, 0xfffffff0
lock xadd dword [edx], eax
and eax, 0xfffffff2
cmp eax, 0x12
jne 0x52dd31
mov ecx, edx
mov byte [esi + 4], 1
mov dword [esi + 0x288], 0x11
mov dword [esi + 0x30], ebx
call fcn.00719c10
mov ebx, dword [esi + 0x30]
test bl, bl
je 0x52e097
mov eax, dword [esi + 0x10]
lea ecx, [esi + 0x68]
mov eax, dword [eax + 8]
mov edx, dword [eax + 0x18]
mov eax, dword [eax + 0x20]
mov dword [esi + 0x68], 1
mov dword [esi + 0x6c], 0
mov dword [esi + 0xd4], 0
mov dword [esi + 0xc8], 0x20
mov byte [esi + 0xd8], 3
mov dword [esi + 0xb8], 0
mov dword [esi + 0xc0], 0
mov dword [esi + 0xcc], ecx
mov dword [esi + 0x70], 0
mov dword [esi + 0xd0], 0x741520
mov dword [esi + 0x288], 0x1a
lea ecx, [esi + 0xb8]
push eax
call fcn.004277d0
add esp, 4
test al, al
jne 0x52e745
movsd xmm0, qword [esi + 0x68]
mov eax, dword [esi + 0x70]
xor ebx, ebx
mov edi, 3
movsd qword [esi + 0x13c], xmm0
mov dword [esi + 0x144], eax
mov byte [esi + 0x162], 0
mov word [esi + 0x160], 0x201
mov dword [esi + 0x148], 0
mov dword [esi + 0x154], 0
mov dword [esi + 0x124], 0
mov dword [esi + 0x120], 0
mov byte [esi + 0x138], 2
mov dword [esi + 0x288], 0x11
lea eax, [esi + 0xc0]
lea ecx, [esi + 0x120]
push 0x48
push ecx
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov ecx, dword [esi + 0x1ac]
lea edx, [esi + 0xb8]
mov dword [esi + 0xbc], ebx
mov dword [esi + 0xb8], edi
mov byte [esi + 4], 1
call fcn.005109d0
mov edi, dword [esi + 0x10]
mov ecx, dword [ebp + 8]
cmp byte [ecx + 0xe4], 0
je 0x52de74
cmp dword [ecx + 0xe5], 0
je 0x52dea0
movups xmm0, xmmword [esi + 0x198]
movups xmm1, xmmword [ecx + 0xd0]
movhps xmm1, qword [esi + 0x190]
movhps xmm0, qword [ecx + 0xd8]
cmpleps xmm1, xmm0
pslld xmm1, 0x1f
movmskps eax, xmm1
cmp al, 0xf
je 0x52deda
push 0x58
lea eax, [esi + 0x178]
push eax
push dword [esi + 0x234]
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
lock dec dword [edi]
jne 0x52e5d0
mov ecx, dword [esi + 0x258]
mov dword [esi + 0x288], 0xffffffff
call fcn.00563190
jmp 0x52e5d0
movzx eax, byte [esi + 0x1b0]
mov ecx, dword [ecx + 0x100]
or al, byte [esi + 0x1b1]
je 0x52df27
cmp byte [esi + 0x1c7], 0
jne 0x52df1f
mov dword [esi + 0x30], ecx
lea ecx, [esi + 0x178]
mov byte [esi + 4], 1
mov dword [esi + 0x288], 0x11
call fcn.00530ba0
mov ecx, dword [esi + 0x30]
test al, al
je 0x52e5e4
add ecx, 0x168
jmp 0x52df2d
add ecx, 0xe4
mov eax, dword [ecx + 0x1c]
mov edi, dword [esi + 0x1ac]
mov dword [esi + 0x30], eax
lea ecx, [edi + 8]
mov eax, dword [edi + 8]
test al, 8
jne 0x52df50
mov edx, eax
add edx, 0x10
jb 0x52df50
lock cmpxchg dword [ecx], edx
je 0x52df75
mov byte [esi + 4], 1
mov dword [esi + 0x288], 0x11
mov dword [esi + 8], ecx
mov dword [esi + 0xa0], edi
call fcn.00719890
mov edi, dword [esi + 0xa0]
mov ecx, dword [esi + 8]
mov eax, 0xfffffff0
movzx edx, byte [edi + 0x390]
lock xadd dword [edi + 8], eax
and eax, 0xfffffff2
cmp eax, 0x12
jne 0x52dfa8
mov byte [esi + 4], 1
mov dword [esi + 0x288], 0x11
mov byte [esi + 8], dl
call fcn.00719c10
movzx edx, byte [esi + 8]
test dl, dl
je 0x52e082
mov edi, dword [esi + 0x1ac]
mov eax, dword [edi + 8]
lea ecx, [edi + 8]
test al, 8
jne 0x52dfcd
mov edx, eax
add edx, 0x10
jb 0x52dfcd
lock cmpxchg dword [ecx], edx
je 0x52dff2
mov byte [esi + 4], 1
mov dword [esi + 0x288], 0x11
mov dword [esi + 8], ecx
mov dword [esi + 0xa0], edi
call fcn.00719890
mov edi, dword [esi + 0xa0]
mov ecx, dword [esi + 8]
mov eax, dword [esi + 0x188]
mov edx, dword [esi + 0x18c]
mov ebx, dword [edi + 0x3c]
mov dword [esi + 8], eax
mov eax, dword [edi + 0x30]
mov dword [esi + 0x210], eax
mov eax, dword [edi + 0x34]
mov dword [esi + 0x4c], eax
mov eax, dword [edi + 0x38]
mov dword [esi + 0xa0], eax
mov eax, 0xfffffff0
lock xadd dword [edi + 8], eax
and eax, 0xfffffff2
cmp eax, 0x12
jne 0x52e04d
mov byte [esi + 4], 1
mov dword [esi + 0x288], 0x11
mov dword [esi + 0x48], edx
mov dword [esi + 0x2c], ebx
call fcn.00719c10
mov ebx, dword [esi + 0x2c]
mov edx, dword [esi + 0x48]
mov eax, dword [esi + 0x4c]
mov ecx, dword [esi + 0xa0]
mov edi, dword [esi + 0x30]
or dword [esi + 0x210], eax
setne al
xor ecx, dword [esi + 8]
xor ebx, edx
or ebx, ecx
sete cl
test al, cl
jne 0x52e08e
xor eax, eax
cmp byte [esi + 0x1b5], 0
mov ecx, 0
je 0x52e0e0
jmp 0x52e08e
cmp byte [esi + 0x1b5], 0
mov edi, dword [esi + 0x30]
je 0x52e0dc
mov eax, 0x3f800000
mov ecx, edi
jmp 0x52e0e0
cmp byte [esi + 0x1c8], 0
mov edi, dword [esi + 0x10]
je 0x52de5f
mov ecx, dword [edi + 8]
xor edx, edx
mov edi, dword [ecx + 0x20]
mov eax, dword [ecx + 0x18]
mov byte [esi + 4], 1
mov dword [esi + 0x288], 0x11
lea ecx, [esi + 0x120]
push edi
push eax
call fcn.0055ea60
xor ebx, ebx
mov edi, 5
add esp, 8
jmp 0x52de23
xor eax, eax
xor ecx, ecx
movaps xmm0, xmmword [esi + 0x1d0]
mov edx, dword [esi + 0x10]
movss dword [esi + 0x23c], xmm0
movaps xmm0, xmmword [esi + 0x260]
movss dword [esi + 0x240], xmm0
mov dword [esi + 0x238], edx
mov dword [esi + 0x248], ecx
movzx ecx, byte [esi + 0x50]
mov dword [esi + 0x244], eax
xor cl, 1
mov byte [esi + 0x250], cl
mov dword [esi + 0x251], edi
mov edi, dword [ebp + 8]
mov dword [esi + 0x24c], 0
movzx ecx, byte [edi + 0xe4]
mov eax, dword [edi + 0xe5]
test cl, cl
setne dl
test eax, eax
sete ch
and ch, dl
mov byte [esi + 0x50], ch
je 0x52e2c3
mov ebx, dword [edi + 0xe0]
mov edx, 8
xor eax, eax
lock cmpxchg dword [ebx + 8], edx
lea ecx, [ebx + 8]
mov dword [esi + 0x10], ecx
je 0x52e187
mov dword [esi + 0x288], 0x12
mov dword [esi + 0x30], ebx
call fcn.007188f0
mov ebx, dword [esi + 0x30]
mov edi, dword [ebp + 8]
mov edx, dword [edi + 0xc0]
mov eax, dword [edi + 0xc4]
mov edi, dword [edi + 0xc8]
add ebx, 0x4c8
mov dword [esi + 0x288], 0x18
mov ecx, ebx
push edi
push eax
call fcn.005332a0
add esp, 8
mov ecx, dword [ebp + 8]
add ecx, 0xd0
movsd xmm0, qword [ecx]
movsd xmm1, qword [ecx + 8]
movsd qword [esi + 0xc0], xmm1
movsd qword [esi + 0xb8], xmm0
mov edx, dword [eax + 8]
mov byte [esi + 0xf4], 2
cmp edx, dword [eax + 4]
jne 0x52e200
mov ecx, eax
mov dword [esi + 0x288], 0x19
mov dword [esi + 0x30], eax
call fcn.004860f0
mov eax, dword [esi + 0x30]
mov edx, dword [eax + 8]
mov ecx, dword [eax]
movsd xmm0, qword [esi + 0xf0]
shl edx, 6
movsd qword [ecx + edx + 0x38], xmm0
movsd xmm0, qword [esi + 0xe8]
movsd qword [ecx + edx + 0x30], xmm0
movsd xmm0, qword [esi + 0xe0]
movsd qword [ecx + edx + 0x28], xmm0
movsd xmm0, qword [esi + 0xd8]
movsd qword [ecx + edx + 0x20], xmm0
movsd xmm0, qword [esi + 0xd0]
movsd qword [ecx + edx + 0x18], xmm0
movsd xmm0, qword [esi + 0xc8]
movsd qword [ecx + edx + 0x10], xmm0
movsd xmm0, qword [esi + 0xb8]
movsd xmm1, qword [esi + 0xc0]
movsd qword [ecx + edx + 8], xmm1
movsd qword [ecx + edx], xmm0
mov ecx, dword [esi + 0x10]
inc dword [eax + 8]
xor edx, edx
mov eax, 8
lock cmpxchg dword [ecx], edx
je 0x52e296
mov dword [esi + 0x288], 0x12
call fcn.00719150
mov eax, dword [esi + 0x238]
lock dec dword [eax]
jne 0x52e5b9
mov ecx, dword [esi + 0x238]
mov byte [esi + 4], 0
mov dword [esi + 0x288], 0x11
call fcn.00563190
jmp 0x52e5b9
movsd xmm1, qword [esi + 0x248]
movsd xmm0, qword [esi + 0x250]
movsd xmm2, qword [esi + 0x238]
test cl, cl
movsd qword [esi + 0x1f0], xmm1
movsd xmm1, qword [esi + 0x240]
movsd qword [esi + 0x1f8], xmm0
movsd qword [esi + 0x1e0], xmm2
movsd qword [esi + 0x1e8], xmm1
mov byte [esi + 0x20c], 8
je 0x52e342
lea ecx, [esi + 0x120]
lea edx, [esi + 0xb8]
mov dword [esi + 0x120], eax
mov byte [esi + 7], 1
mov dword [esi + 0x288], 0x13
mov dword [esi + 0xb8], ecx
lea ecx, [esi + 0x1e0]
call fcn.00549360
mov edi, dword [ebp + 8]
movsd xmm1, qword [esi + 0x200]
movsd xmm2, qword [esi + 0x1f8]
movsd xmm0, qword [esi + 0x208]
mov ebx, dword [edi + 0xe0]
lea eax, [edi + 0xc0]
mov ecx, 8
movsd qword [esi + 0x140], xmm1
movsd xmm1, qword [esi + 0x1f0]
movsd qword [esi + 0x138], xmm2
movsd xmm2, qword [esi + 0x1e0]
movsd qword [esi + 0x148], xmm0
movsd qword [esi + 0x130], xmm1
movsd xmm1, qword [esi + 0x1e8]
movsd qword [esi + 0x120], xmm2
movsd qword [esi + 0x128], xmm1
mov dword [esi + 0x150], eax
mov dword [esi + 0x158], eax
lea eax, [ebx + 8]
mov dword [esi + 0x10], eax
xor eax, eax
lock cmpxchg dword [ebx + 8], ecx
je 0x52e3e6
mov ecx, dword [esi + 0x10]
mov dword [esi + 0x288], 0x17
mov dword [esi + 0x30], ebx
call fcn.007188f0
mov ebx, dword [esi + 0x30]
movsd xmm2, qword [esi + 0x148]
movsd xmm1, qword [esi + 0x140]
movsd xmm0, qword [esi + 0x150]
mov eax, dword [esi + 0x158]
add ebx, 0x4c8
mov ecx, ebx
movsd qword [esi + 0x90], xmm2
movsd qword [esi + 0x88], xmm1
movsd xmm2, qword [esi + 0x138]
movsd xmm1, qword [esi + 0x130]
movsd qword [esi + 0x98], xmm0
movsd qword [esi + 0x80], xmm2
movsd qword [esi + 0x78], xmm1
movsd xmm2, qword [esi + 0x120]
movsd xmm1, qword [esi + 0x128]
movsd qword [esi + 0x70], xmm1
movsd qword [esi + 0x68], xmm2
mov edx, dword [eax]
mov edi, dword [eax + 4]
mov eax, dword [eax + 8]
mov byte [esi + 0xf], 1
mov dword [esi + 0x288], 0x15
push eax
push edi
call fcn.005332a0
add esp, 8
mov ecx, dword [esi + 0x98]
movsd xmm2, qword [esi + 0x148]
movsd xmm1, qword [ecx + 0x18]
movsd xmm0, qword [ecx + 0x10]
movsd qword [esi + 0xc0], xmm1
movsd xmm1, qword [esi + 0x140]
movsd qword [esi + 0xb8], xmm0
movsd qword [esi + 0xf0], xmm2
movsd xmm2, qword [esi + 0x138]
movsd qword [esi + 0xe8], xmm1
movsd xmm1, qword [esi + 0x130]
movsd qword [esi + 0xe0], xmm2
movsd xmm2, qword [esi + 0x120]
movsd qword [esi + 0xd8], xmm1
movsd xmm1, qword [esi + 0x128]
movsd qword [esi + 0xc8], xmm2
movsd qword [esi + 0xd0], xmm1
mov edx, dword [eax + 8]
cmp edx, dword [eax + 4]
jne 0x52e51d
mov ecx, eax
mov dword [esi + 0x288], 0x16
mov dword [esi + 0x30], eax
call fcn.004860f0
mov eax, dword [esi + 0x30]
mov edx, dword [eax + 8]
mov ecx, dword [eax]
movsd xmm0, qword [esi + 0xf0]
shl edx, 6
movsd qword [ecx + edx + 0x38], xmm0
movsd xmm0, qword [esi + 0xe8]
movsd qword [ecx + edx + 0x30], xmm0
movsd xmm0, qword [esi + 0xe0]
movsd qword [ecx + edx + 0x28], xmm0
movsd xmm0, qword [esi + 0xd8]
movsd qword [ecx + edx + 0x20], xmm0
movsd xmm0, qword [esi + 0xd0]
movsd qword [ecx + edx + 0x18], xmm0
movsd xmm0, qword [esi + 0xc8]
movsd qword [ecx + edx + 0x10], xmm0
movsd xmm0, qword [esi + 0xb8]
movsd xmm1, qword [esi + 0xc0]
movsd qword [ecx + edx + 8], xmm1
movsd qword [ecx + edx], xmm0
mov edx, dword [esi + 0x10]
inc dword [eax + 8]
xor ecx, ecx
mov eax, 8
lock cmpxchg dword [edx], ecx
je 0x52e5b9
mov ecx, edx
mov byte [esi + 7], 0
mov dword [esi + 0x288], 0x13
call fcn.00719150
push 0x58
lea eax, [esi + 0x178]
push eax
push dword [esi + 0x234]
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 0x280]
mov dword fs:[0], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
movzx eax, byte [esi + 0x1b4]
or al, byte [esi + 0x1b5]
jne 0x52e5fe
add ecx, 0x110
jmp 0x52df2d
add ecx, 0x13c
jmp 0x52df2d
ud2
lea eax, [esi + 0x120]
mov ecx, str.a_Display_implementation_returned_an_error_unexpectedly_rustc_d5c2e9c342b358556da91d61ed4133f6f50fc0c3library_alloc_src_string.rs
mov edx, 0x37
push 0x8f6af8
push 0x741538
push eax
call fcn.0070a360
add esp, 0xc
jmp 0x52e768
mov dword [esi + 0x288], 2
mov ecx, str.No_fonts_available_until_first_call_to_Context::run__C:Users_runneradmin.cargo_registry_srcindex.crates.io_6f17d22bba15001fegui_0.22.0_srccontext.rs
mov edx, 0x35
push 0x742b0c
call fcn.0070a3e0
add esp, 4
jmp 0x52e768
lea eax, [esi + 0x120]
mov ecx, str.a_Display_implementation_returned_an_error_unexpectedly_rustc_d5c2e9c342b358556da91d61ed4133f6f50fc0c3library_alloc_src_string.rs
mov edx, 0x37
push 0x8f6af8
push 0x741538
push eax
call fcn.0070a360
add esp, 0xc
jmp 0x52e768
mov dword [esi + 0x288], 7
mov ecx, str.No_fonts_available_until_first_call_to_Context::run__C:Users_runneradmin.cargo_registry_srcindex.crates.io_6f17d22bba15001fegui_0.22.0_srccontext.rs
mov edx, 0x35
push 0x742b0c
call fcn.0070a3e0
add esp, 4
jmp 0x52e768
lea ecx, [esi + 0xb8]
mov edx, 0x740ce0
mov dword [esi + 0xb8], 0x740cd8
mov dword [esi + 0xbc], 1
mov dword [esi + 0xc8], 0
mov dword [esi + 0xc0], str.not_implementedC:Users_runneradmin.cargo_registry_srcindex.crates.io_6f17d22bba15001fwinit_0.28.6_srcplatform_implwindowsdrop_handler.rs
mov dword [esi + 0xc4], 0
call fcn.00709f70
jmp 0x52e768
mov dword [esi + 0x288], 0xe
call fcn.00425040
jmp 0x52e768
mov dword [esi + 0x288], 0xf
call fcn.00425040
jmp 0x52e768
mov dword [esi + 0x288], 0xf
call fcn.00425040
jmp 0x52e768
lea eax, [esi + 0x120]
mov ecx, str.a_Display_implementation_returned_an_error_unexpectedly_rustc_d5c2e9c342b358556da91d61ed4133f6f50fc0c3library_alloc_src_string.rs
mov edx, 0x37
push 0x8f6af8
push 0x741538
push eax
call fcn.0070a360
add esp, 0xc
jmp 0x52e768
lea eax, [esi + 0x120]
mov ecx, str.a_Display_implementation_returned_an_error_unexpectedly_rustc_d5c2e9c342b358556da91d61ed4133f6f50fc0c3library_alloc_src_string.rs
mov edx, 0x37
push 0x8f6af8
push 0x741538
push eax
call fcn.0070a360
add esp, 0xc
ud2