Function at 0x53fd70
Capabilities:
Access peb ldr_data
Check os version
Get ntdll base address
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x4a0
mov esi, esp
mov dword [esi + 0x488], ebp
call 0x53fd8c
pop eax
mov dword [esi + 0x48c], esp
mov dword [esi + 0x498], 0xffffffff
mov dword [esi + 0x494], 0x704680
mov dword [esi + 0x384], ecx
mov ecx, dword [ebp + 8]
mov dword [esi + 0x190], eax
mov eax, dword fs:[0]
mov dword [esi + 0x490], eax
lea eax, [esi + 0x490]
mov dword fs:[0], eax
mov eax, dword [edx + 0x90]
movsd xmm0, qword [edx + 0x88]
movsd xmm1, qword [edx + 0x60]
test byte [edx + 0x9e], 1
mov edi, dword [edx + 8]
mov ebx, dword [edx + 0x18]
mov dword [esi + 0x380], eax
mov eax, dword [edx + 0x38]
movsd qword [esi + 0x378], xmm0
movsd xmm0, qword [edx + 0x80]
movsd qword [esi + 0x350], xmm1
movsd xmm1, qword [edx + 0x30]
mov dword [esi + 0x154], ebx
mov dword [esi + 0x48], edi
mov dword [esi + 0x20], eax
mov eax, dword [edx + 0x3c]
movsd qword [esi + 0x370], xmm0
movsd xmm0, qword [edx + 0x78]
movsd qword [esi + 0x3f8], xmm1
mov dword [esi + 0x3c], eax
mov eax, dword [edx + 4]
movsd qword [esi + 0x368], xmm0
movsd xmm0, qword [edx + 0x70]
mov dword [esi + 0x28], eax
mov eax, dword [edx + 0xc]
movsd qword [esi + 0x360], xmm0
movsd xmm0, qword [edx + 0x68]
mov dword [esi + 0x160], eax
mov eax, dword [edx]
movsd qword [esi + 0x358], xmm0
movsd xmm0, qword [edx + 0x58]
mov dword [esi + 0x44], eax
mov eax, dword [edx + 0x14]
movsd qword [esi + 0x348], xmm0
movsd xmm0, qword [edx + 0x28]
mov dword [esi + 0xb4], eax
mov eax, dword [edx + 0x10]
movsd qword [esi + 0x3f0], xmm0
mov dword [esi + 0x2c0], eax
mov eax, dword [edx + 0x1c]
mov dword [esi + 0x174], eax
jne 0x53fec6
mov ecx, dword [ecx + 0x100]
test byte [ecx + 0x1f8], 1
lea eax, [ecx + 0x1f9]
lea edi, [ecx + 0x12c]
cmove eax, edi
jmp 0x53fecc
lea eax, [edx + 0x9f]
movzx ecx, byte [edx + 0xa3]
movss xmm0, dword [edx + 0x48]
mov eax, dword [eax]
mov edi, dword [edx + 0x98]
mov byte [esi + 0x1f], cl
movzx ecx, byte [edx + 0xa5]
movss dword [esi + 0x10], xmm0
movss xmm0, dword [edx + 0x4c]
mov dword [esi + 0xd0], eax
mov eax, dword [esi + 0x3c]
mov dword [esi + 0x1b4], edi
mov byte [esi + 0x25c], cl
movzx ecx, byte [edx + 0xa6]
movss dword [esi + 0x50], xmm0
movss xmm0, dword [edx + 0x24]
mov eax, dword [eax + 0x10]
mov byte [esi + 0xbd], 1
mov byte [esi + 0xbe], 1
mov dword [esi + 0x498], 0
mov byte [esi + 0x64], cl
movzx ecx, byte [edx + 0xa7]
movss dword [esi + 0x40], xmm0
movss xmm0, dword [edx + 0x50]
mov byte [esi + 0x400], cl
movzx ecx, byte [edx + 0xa8]
movaps xmmword [esi + 0x180], xmm0
movss xmm0, dword [edx + 0x54]
mov byte [esi + 0x158], cl
movzx ecx, byte [edx + 0xa9]
movaps xmmword [esi + 0xa0], xmm0
mov byte [esi + 0x28c], cl
mov ecx, dword [edx + 0x40]
mov dword [esi + 0x14], ecx
mov ecx, dword [edx + 0x44]
mov dword [esi + 0xc0], ecx
mov ecx, dword [edx + 0x20]
mov dword [esi + 0x30], ecx
mov ecx, dword [edx + 0x94]
mov dword [esi + 0x24], ecx
movzx ecx, word [edx + 0x9c]
mov dword [esi + 0x3a0], ecx
push dword [esi + 0x20]
mov dword [esi + 0x15c], eax
call eax
add esp, 4
mov edi, eax
test edx, edx
mov dword [esi + 0x150], edx
je 0x540021
test edx, edx
setns bl
js 0x547010
movzx eax, byte [0x919aa5]
mov eax, dword [0x919820]
test eax, eax
jne 0x53fff1
call dword [sym.imp.kernel32.dll_GetProcessHeap]
mov edx, dword [esi + 0x150]
test eax, eax
je 0x540005
mov dword [0x919820], eax
push edx
push 0
push eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
mov edx, dword [esi + 0x150]
test eax, eax
jne 0x540026
xor ecx, ecx
mov cl, bl
mov byte [esi + 0xbd], 1
mov byte [esi + 0xbe], 1
call fcn.00709d20
jmp 0x547145
mov eax, 1
push edx
push edi
mov dword [esi + 0x164], eax
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [ebp + 8]
movsd xmm0, qword [esi + 0x3f0]
movsd xmm1, qword [esi + 0x3f8]
mov byte [esi + 0xf7], 1
mov dword [esi + 0x498], 1
lea ecx, [esi + 0x2a0]
lea edx, [esi + 0x2d0]
mov eax, dword [eax + 0x100]
movsd qword [esi + 0x2d8], xmm1
movsd qword [esi + 0x2d0], xmm0
add eax, 8
push eax
call fcn.0053ee80
add esp, 4
mov eax, dword [ebp + 8]
mov edi, dword [eax + 0xe0]
mov eax, dword [edi + 8]
lea ecx, [edi + 8]
mov dword [esi + 0x18], ecx
test al, 8
jne 0x5400ac
mov edx, eax
add edx, 0x10
jb 0x5400ac
lock cmpxchg dword [ecx], edx
je 0x5400c5
mov byte [esi + 0x65], 1
mov dword [esi + 0x498], 2
mov dword [esi + 0x2c], edi
call fcn.00719890
mov edi, dword [esi + 0x2c]
mov edi, dword [edi + 0x658]
test edi, edi
je 0x546fcc
mov dl, 1
xor eax, eax
lea ecx, [edi + 8]
lock cmpxchg byte [edi + 8], dl
mov dword [esi + 0x2c], ecx
je 0x5400ff
mov dword [esi + 0x498], 3
mov dword [esi + 0x260], edi
call fcn.0071aab0
mov edi, dword [esi + 0x260]
add edi, 0x10
lea edx, [esi + 0x2a0]
mov dword [esi + 0x498], 4
mov ecx, edi
call fcn.005a2a40
movss xmm0, dword [eax + 0x7c]
mov ecx, dword [esi + 0x2c]
xor edx, edx
mov al, 1
movaps xmmword [esi + 0x410], xmm0
lock cmpxchg byte [ecx], dl
je 0x540141
mov dword [esi + 0x498], 3
call fcn.0071ade0
mov ecx, dword [esi + 0x18]
mov eax, 0xfffffff0
lock xadd dword [ecx], eax
and eax, 0xfffffff2
cmp eax, 0x12
jne 0x540168
mov byte [esi + 0x65], 1
mov dword [esi + 0x498], 2
call fcn.00719c10
mov edi, dword [ebp + 8]
mov ecx, edi
call fcn.005558c0
cmp dword [esi + 0x30], 0
jne 0x54018b
mov eax, dword [edi + 0x100]
movss xmm1, dword [eax + 0x80]
movss dword [esi + 0x40], xmm1
cmp byte [edi + 0xbd], 2
maxss xmm0, dword [0x7266d8]
sbb edi, 0
cmp byte [edi + 0xba], 0
jne 0x5401c6
movss xmm3, dword [esi + 0x40]
movaps xmm2, xmm3
cmpunordss xmm2, xmm3
movaps xmm1, xmm2
andps xmm1, xmm0
minss xmm0, xmm3
andnps xmm2, xmm0
orps xmm2, xmm1
movaps xmm0, xmm2
mov eax, dword [esi + 0x2a0]
mov edi, dword [esi + 0x14]
movss xmm1, dword [esi + 0x2ac]
movaps xmmword [esi + 0x260], xmm0
cmp eax, 2
jae 0x5401e5
jmp 0x540204
mov ecx, dword [esi + 0x2a4]
lock inc dword [ecx]
jle 0x546fc8
mov edx, dword [esi + 0x2a8]
mov dword [esi + 0x498], 5
movzx ebx, byte [esi + 0x1f]
mov bh, byte [esi + 0x25c]
test edi, edi
mov byte [esi + 0xbf], 1
mov dword [esi + 0x498], 5
mov byte [esi + 0x344], bl
mov byte [esi + 0x345], bh
mov dword [esi + 0x330], eax
mov eax, dword [esi + 0xd0]
mov dword [esi + 0x334], ecx
mov dword [esi + 0x338], edx
movss dword [esi + 0x33c], xmm1
mov ecx, edi
mov dword [esi + 0x340], eax
lea eax, [esi + 0x330]
cmove ecx, eax
mov dword [esi + 0x168], ecx
push dword [esi + 0x20]
call dword [esi + 0x15c]
add esp, 4
movaps xmm1, xmmword [esi + 0x260]
cmp dword [esi + 0x14], 0
mov edi, dword [esi + 0xc0]
movss xmm0, dword [esi + 0x10]
mov ecx, 0x7411ec
cmove edi, ecx
addss xmm0, xmm0
mov ecx, dword [edi + 0x10]
subss xmm1, xmm0
movss dword [esi + 0x10], xmm0
mov byte [esi + 0xbf], 1
movaps xmmword [esi + 0x260], xmm1
sub esp, 0x14
mov dword [esp + 8], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0xc], edx
movss dword [esp + 0x10], xmm1
mov dword [esi + 0x29c], ecx
mov dword [esp + 4], eax
mov eax, dword [esi + 0x168]
mov dword [esp], eax
call ecx
movaps xmm0, xmmword [esi + 0x260]
add esp, 0x14
cmp byte [esi + 0x28c], 0
mov edx, dword [ebp + 8]
movaps xmm5, xmm0
mov dword [esi + 0xb8], eax
jne 0x540316
movss xmm5, dword [eax + 0x20]
movaps xmm1, xmm0
subss xmm5, dword [eax + 0x18]
maxss xmm1, xmm5
cmpunordss xmm5, xmm5
movaps xmm2, xmm5
andps xmm5, xmm0
andnps xmm2, xmm1
orps xmm5, xmm2
mov ecx, dword [esi + 0x24]
mov edi, 1
movss xmm2, dword [eax + 0x24]
movss xmm0, dword [esi + 0x50]
cmp ecx, 2
subss xmm2, dword [eax + 0x1c]
addss xmm0, xmm0
mov byte [esi + 0x66], 1
mov byte [esi + 0x67], 0
mov dword [esi + 0x498], 6
cmovae edi, ecx
lea ecx, [esi + 0x2d0]
movd xmm1, edi
por xmm1, xmmword [0x7259c0]
subsd xmm1, qword [0x725628]
cvtsd2ss xmm3, xmm1
movaps xmm1, xmm2
mulss xmm3, dword [esi + 0x410]
cmpunordss xmm1, xmm2
movaps xmm4, xmm1
andps xmm4, xmm3
maxss xmm3, xmm2
andnps xmm1, xmm3
movaps xmm3, xmmword [esi + 0x180]
orps xmm1, xmm4
movaps xmm4, xmmword [esi + 0xa0]
subss xmm3, dword [esi + 0x10]
subss xmm4, xmm0
movaps xmm0, xmm5
cmpunordss xmm0, xmm5
movaps xmm2, xmm0
andps xmm2, xmm3
maxss xmm3, xmm5
andnps xmm0, xmm3
movaps xmm3, xmm4
maxss xmm3, xmm1
cmpunordss xmm1, xmm1
orps xmm0, xmm2
movaps xmm2, xmm1
andps xmm1, xmm4
movaps xmmword [esi + 0x390], xmm0
andnps xmm2, xmm3
orps xmm1, xmm2
call fcn.00530440
mov eax, dword [ebp + 8]
mov edi, dword [esi + 0x48]
lea ecx, [eax + 0xe0]
mov eax, dword [esi + 0x44]
mov dword [esi + 0x40], ecx
or eax, dword [esi + 0x28]
mov eax, dword [esi + 0x160]
jne 0x54052f
mov eax, dword [esi + 0x2c0]
or eax, dword [esi + 0xb4]
je 0x540523
mov eax, dword [ebp + 8]
mov ebx, 0x38d01376
mov edx, 0x2df45158
mov ecx, 0x452821e6
xor ebx, dword [eax + 0xf0]
mov eax, ebx
mul edx
mov dword [esi + 0x10], eax
imul eax, ebx, 0x2d7f954c
bswap ebx
add eax, edx
mov edx, dword [ebp + 8]
xor ecx, dword [edx + 0xf4]
imul edx, ecx, 0x2df45158
bswap ecx
add edx, eax
mov eax, ecx
imul ecx, ecx, 0xa7ae0bd2
mov dword [esi + 0x14], edx
mov edx, 0xb36a80d2
mul edx
mov edi, eax
add ecx, edx
imul eax, ebx, 0xb36a80d2
mov edx, 0x2df45158
add eax, ecx
mov ecx, dword [esi + 0x10]
bswap edi
xor edi, dword [esi + 0x14]
bswap eax
xor ecx, dword [esi + 0x154]
xor edi, dword [esi + 0x174]
xor ecx, eax
mov eax, ecx
mul edx
mov dword [esi + 0x10], eax
imul eax, ecx, 0x2d7f954c
bswap ecx
add eax, edx
imul edx, edi, 0x2df45158
bswap edi
imul ecx, ecx, 0xb36a80d2
add edx, eax
mov eax, edi
mov dword [esi + 0x14], edx
mov edx, 0xb36a80d2
mul edx
mov ebx, eax
imul eax, edi, 0xa7ae0bd2
add eax, edx
bswap ebx
mov edx, 0xcf6654be
add ecx, eax
xor ebx, dword [esi + 0x14]
bswap ecx
xor ecx, dword [esi + 0x10]
imul edi, ebx, 0xcf6654be
bswap ebx
mov eax, ecx
mul edx
mov dword [esi + 0x10], eax
imul eax, ecx, 0x6e0ce934
add eax, edx
mov edx, 0xcb16f391
add edi, eax
mov eax, ebx
imul ebx, ebx, 0x41ab9930
mul edx
add ebx, edx
mov edx, ecx
bswap eax
bswap edx
xor eax, edi
imul edx, edx, 0xcb16f391
add edx, ebx
bswap edx
xor edx, dword [esi + 0x10]
test cl, 0x20
mov edi, edx
cmove edx, eax
cmovne edi, eax
mov eax, edx
shld eax, edi, cl
shld edi, edx, cl
mov ecx, dword [esi + 0x40]
jmp 0x54052f
mov edi, dword [esi + 0x2d0]
mov eax, dword [esi + 0x2d4]
movups xmm0, xmmword [esi + 0x2d8]
mov edx, dword [ecx]
mov dword [esi + 0x1a8], edi
mov dword [esi + 0x1ac], eax
mov byte [esi + 0x66], 1
mov byte [esi + 0x67], 0
lea ecx, [esi + 0xf8]
movaps xmmword [esi + 0x2c0], xmm0
push eax
push edi
call fcn.00559300
add esp, 8
cmp byte [esi + 0x148], 2
jne 0x54062b
movsd xmm0, qword [0x7266e0]
movaps xmm1, xmmword [0x7266f0]
movsd qword [esi + 0x324], xmm0
mov byte [esi + 0x2d8], 0
mov byte [esi + 0x2fc], 2
mov dword [esi + 0x310], 4
movups xmmword [esi + 0x314], xmm1
mov dword [esi + 0x2d0], 1
mov dword [esi + 0x2d4], 1
movzx eax, byte [0x919aa5]
mov eax, dword [0x919820]
test eax, eax
jne 0x5405dd
call dword [sym.imp.kernel32.dll_GetProcessHeap]
test eax, eax
je 0x546ff2
mov dword [0x919820], eax
push 0x60
push 0
push eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
test eax, eax
je 0x546ff2
mov edi, eax
push 0x60
lea eax, [esi + 0x2d0]
push eax
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov byte [esi + 0x24c], 2
mov byte [esi + 0x214], 2
mov dword [esi + 0x250], edi
mov byte [esi + 0x258], 0
mov dword [esi + 0x254], 0
jmp 0x540643
lea eax, [esi + 0x208]
push 0x54
lea ecx, [esi + 0xf8]
push ecx
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 0x40]
mov edi, dword [eax]
mov eax, dword [edi + 8]
lea ecx, [edi + 8]
test al, 8
jne 0x54065f
mov edx, eax
add edx, 0x10
jb 0x54065f
lock cmpxchg dword [ecx], edx
je 0x540682
mov byte [esi + 0x4e], 1
mov byte [esi + 0x4f], 1
mov dword [esi + 0x498], 7
mov dword [esi + 0x10], ecx
mov dword [esi + 0x14], edi
call fcn.00719890
mov edi, dword [esi + 0x14]
mov ecx, dword [esi + 0x10]
mov eax, 0xfffffff0
mov edx, dword [edi + 0x374]
lock xadd dword [edi + 8], eax
and eax, 0xfffffff2
cmp eax, 0x12
jne 0x5406b7
mov byte [esi + 0x4e], 1
mov byte [esi + 0x4f], 1
mov dword [esi + 0x498], 7
mov dword [esi + 0x10], edx
call fcn.00719c10
mov edx, dword [esi + 0x10]
test edx, edx
je 0x5407a3
mov eax, dword [esi + 0x40]
mov edi, dword [eax]
mov eax, dword [edi + 8]
lea ecx, [edi + 8]
test al, 8
jne 0x5406db
mov edx, eax
add edx, 0x10
jb 0x5406db
lock cmpxchg dword [ecx], edx
je 0x5406fe
mov byte [esi + 0x4e], 1
mov byte [esi + 0x4f], 1
mov dword [esi + 0x498], 7
mov dword [esi + 0x10], ecx
mov dword [esi + 0x14], edi
call fcn.00719890
mov edi, dword [esi + 0x14]
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 0x1a8]
mov edx, dword [esi + 0x1ac]
mov ebx, dword [edi + 0x3c]
mov dword [esi + 0x10], eax
mov eax, dword [edi + 0x30]
mov dword [esi + 0x18], eax
mov eax, dword [edi + 0x34]
mov dword [esi + 0x30], eax
mov eax, dword [edi + 0x38]
mov dword [esi + 0x14], eax
mov eax, 0xfffffff0
lock xadd dword [edi + 8], eax
and eax, 0xfffffff2
cmp eax, 0x12
jne 0x540763
mov byte [esi + 0x4e], 1
mov byte [esi + 0x4f], 1
mov dword [esi + 0x498], 7
mov dword [esi + 0xd0], edx
mov dword [esi + 0xc0], ebx
call fcn.00719c10
mov ebx, dword [esi + 0xc0]
mov edx, dword [esi + 0xd0]
mov ah, byte [esi + 0x64]
mov edi, dword [esi + 0x30]
test ah, ah
sete ch
or dword [esi + 0x18], edi
mov edi, dword [esi + 0x14]
setne al
xor edi, dword [esi + 0x10]
xor ebx, edx
or ebx, edi
sete cl
xor edx, edx
and cl, al
and ch, cl
test ah, ah
mov eax, 0x10001
cmove eax, edx
je 0x5407c4
movaps xmm2, xmmword [esi + 0x2c0]
mov edx, dword [ebp + 8]
test cl, cl
jne 0x5407b3
jmp 0x5407d4
cmp byte [esi + 0x64], 0
movaps xmm2, xmmword [esi + 0x2c0]
mov edx, dword [ebp + 8]
je 0x5407d0
mov dword [esi + 0x498], 7
mov eax, 0x10101
jmp 0x5407d2
movaps xmm2, xmmword [esi + 0x2c0]
mov edx, dword [ebp + 8]
jmp 0x5407d4
xor eax, eax
mov ch, 1
mov byte [esi + 0x160], ch
mov ecx, dword [esi + 0x1a8]
movsd xmm0, qword [edx + 0xd0]
movsd xmm1, qword [edx + 0xd8]
movzx ebx, byte [edx + 0x108]
mov edi, dword [edx + 0xc8]
mov dword [esi + 0x10], ecx
mov ecx, dword [esi + 0x1ac]
movsd qword [esi + 0x1c0], xmm1
movsd qword [esi + 0x1b8], xmm0
mov dword [esi + 0x14], ecx
mov ecx, dword [edx + 0x100]
movss xmm0, dword [ecx + 0x3c]
movss xmm1, dword [ecx + 0x40]
mov ecx, dword [edx + 0xc0]
movups xmmword [esi + 0xf8], xmm2
mov byte [esi + 0x4e], 1
mov byte [esi + 0x4f], 1
mov dword [esi + 0x498], 7
mov dword [esi + 0x18], ecx
mov ecx, dword [edx + 0xc4]
mov edx, dword [esi + 0x40]
mov dword [esi + 0x30], ecx
lea ecx, [esi + 0x2d0]
push ebx
push eax
lea eax, [esi + 0xf8]
push eax
push dword [esi + 0x14]
push dword [esi + 0x10]
push edi
push dword [esi + 0x30]
push dword [esi + 0x18]
lea eax, [esi + 0x1b8]
push eax
call fcn.00519df0
add esp, 0x24
mov eax, dword [esi + 0x40]
mov eax, dword [eax]
lock inc dword [eax]
jle 0x546fc8
mov edx, dword [ebp + 8]
movaps xmm0, xmmword [0x726640]
movaps xmm3, xmmword [esi + 0x2c0]
movaps xmm4, xmmword [0x726220]
cmp byte [esi + 0x64], 0
mov ecx, dword [edx + 0xe4]
movsd xmm1, qword [edx + 0xd0]
addps xmm0, xmm3
movhlps xmm3, xmm3
mov ebx, dword [edx + 0xc0]
mov edi, dword [edx + 0xc4]
addps xmm4, xmm3
movaps xmmword [esi + 0x420], xmm3
mov dword [esi + 0x3d4], ecx
movzx ecx, byte [edx + 0xe8]
movaps xmm2, xmm1
maxps xmm1, xmm0
cmpunordps xmm0, xmm0
andps xmm2, xmm0
andnps xmm0, xmm1
movsd xmm1, qword [edx + 0xd8]
orps xmm0, xmm2
mov byte [esi + 0x3d8], cl
movzx ecx, byte [edx + 0xc8]
mov dword [esi + 0x3d0], eax
mov dword [esi + 0x3b0], ebx
mov dword [esi + 0x3b4], edi
movaps xmm2, xmm1
minps xmm1, xmm4
cmpunordps xmm4, xmm4
andps xmm2, xmm4
andnps xmm4, xmm1
orps xmm4, xmm2
mov byte [esi + 0x3b8], cl
movlps qword [esi + 0x3c0], xmm0
movlps qword [esi + 0x3c8], xmm4
je 0x542160
mov eax, dword [esi + 0x40]
mov edi, dword [eax]
mov eax, dword [edi + 8]
lea ecx, [edi + 8]
test al, 8
jne 0x540966
mov edx, eax
add edx, 0x10
jb 0x540966
lock cmpxchg dword [ecx], edx
je 0x540985
mov byte [esi + 0xf], 1
mov dword [esi + 0x498], 9
mov dword [esi + 0x10], ecx
mov dword [esi + 0x14], edi
call fcn.00719890
mov edi, dword [esi + 0x14]
mov ecx, dword [esi + 0x10]
movss xmm0, dword [edi + 0x2fc]
mov eax, 0xfffffff0
mov edx, dword [edi + 0x2f4]
movss xmm6, dword [edi + 0x2f8]
movss dword [esi + 0x14], xmm0
lock xadd dword [edi + 8], eax
and eax, 0xfffffff2
cmp eax, 0x12
jne 0x5409d5
mov byte [esi + 0xf], 1
mov dword [esi + 0x498], 9
movss dword [esi + 0x10], xmm6
mov dword [esi + 0x18], edx
call fcn.00719c10
mov edx, dword [esi + 0x18]
movss xmm6, dword [esi + 0x10]
test edx, edx
je 0x5420f8
cmp byte [esi + 0x30c], 0
je 0x540a63
mov byte [esi + 0xf], 1
mov dword [esi + 0x498], 9
push dword [esi + 0x20]
mov eax, dword [esi + 0x3c]
movss dword [esi + 0x10], xmm6
call dword [eax + 0xc]
movss xmm6, dword [esi + 0x10]
add esp, 4
test al, al
je 0x540a63
mov eax, dword [esi + 0x40]
mov edx, 8
xor ebx, ebx
mov edi, dword [eax]
xor eax, eax
lock cmpxchg dword [edi + 8], edx
lea ecx, [edi + 8]
je 0x540a42
mov byte [esi + 0xf], 1
mov dword [esi + 0x18], ecx
mov dword [esi + 0x30], edi
call fcn.007188f0
mov edi, dword [esi + 0x30]
mov ecx, dword [esi + 0x18]
movss xmm6, dword [esi + 0x10]
xor ebx, ebx
mov byte [edi + 0x47c], 1
mov eax, 8
lock cmpxchg dword [edi + 8], ebx
je 0x540a63
mov byte [esi + 0xf], 1
call fcn.00719150
movss xmm6, dword [esi + 0x10]
mov eax, dword [esi + 0xb8]
mov ecx, dword [eax + 0x14]
test ecx, ecx
je 0x540c5f
movss xmm1, dword [esi + 0x14]
subss xmm6, dword [esi + 0x2e8]
mov eax, dword [eax + 0xc]
movss xmm4, dword [0x7258a0]
movss xmm2, dword [0x725640]
lea ebx, [ecx + ecx*2]
xorps xmm0, xmm0
xor edx, edx
xor edi, edi
mov dword [esi + 0x48], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0xd0], 0
mov dword [esi + 0x24], 0
mov dword [esi + 0x30], 0
mov dword [esi + 0x2c], 0
mov dword [esi + 0x180], 0
mov dword [esi + 0x18], 0
shl ebx, 5
subss xmm1, dword [esi + 0x2ec]
addss xmm6, dword [esi + 0x254]
add ebx, eax
mov dword [esi + 0x14], eax
mov dword [esi + 0xc0], ebx
addss xmm0, xmm1
jmp 0x540b51
mov eax, dword [esi + 0x14]
mov ebx, dword [esi + 0x30]
movaps xmm3, xmm4
movaps xmm6, xmm1
mov ecx, dword [eax + 0x58]
mov eax, dword [esi + 0x18]
inc eax
add ebx, ecx
add edi, ecx
mov ecx, edx
movaps xmm4, xmm3
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x14]
movzx edx, byte [eax + 0x5c]
add eax, 0x60
mov dword [esi + 0x14], eax
add ebx, edx
test edx, edx
mov dword [esi + 0x30], ebx
mov ebx, edi
mov edi, 0
cmovne ebx, edi
mov edi, dword [esi + 0xc0]
add ecx, edx
mov edx, ecx
cmp eax, edi
mov edi, ebx
je 0x540c8f
mov eax, dword [esi + 0x14]
movaps xmm1, xmm6
movaps xmm3, xmm0
movss xmm6, dword [eax + 0x44]
movss xmm5, dword [eax + 0x4c]
movaps xmm7, xmm6
cmpleps xmm3, xmm5
subss xmm6, xmm0
subss xmm5, xmm0
cmpleps xmm7, xmm0
andps xmm7, xmm3
movaps xmm3, xmmword [0x725610]
movd eax, xmm7
test al, 1
andps xmm6, xmm3
andps xmm5, xmm3
movaps xmm3, xmm6
cmpunordss xmm3, xmm6
movaps xmm7, xmm3
andps xmm7, xmm5
minss xmm5, xmm6
andnps xmm3, xmm5
orps xmm3, xmm7
jne 0x540bb0
ucomiss xmm4, xmm3
jbe 0x540b00
mov ecx, dword [esi + 0x14]
mov dword [esi + 0x50], edi
mov dword [esi + 0xa0], edx
movaps xmm6, xmm1
mov dword [esi + 0x180], eax
mov dword [esi + 0x10], 0xffffffff
mov edi, dword [ecx + 0x50]
mov ecx, dword [ecx + 0x58]
imul edx, ecx, 0x34
nop word cs:[eax + eax]
nop
test edx, edx
je 0x540c10
movss xmm4, dword [edi + 4]
movss xmm5, dword [edi + 0x10]
inc dword [esi + 0x10]
add edi, 0x34
add edx, 0xffffffcc
addss xmm5, xmm4
addss xmm5, xmm4
mulss xmm5, xmm2
ucomiss xmm5, xmm6
jbe 0x540be0
jmp 0x540c13
mov dword [esi + 0x10], ecx
mov edi, dword [esi + 0x10]
mov ebx, dword [esi + 0x30]
mov eax, dword [esi + 0x50]
cmp edi, ecx
setb dl
test byte [esi + 0x180], 1
mov dword [esi + 0x24], edx
lea edx, [edi + ebx]
mov dword [esi + 0xd0], edx
lea edx, [edi + eax]
mov edi, eax
mov eax, dword [esi + 0x18]
mov dword [esi + 0x2c], edx
mov edx, dword [esi + 0xa0]
mov dword [esi + 0x48], eax
mov dword [esi + 0x180], edx
je 0x540b12
mov dword [esi + 0x180], edx
mov dword [esi + 0x48], eax
jmp 0x540c8f
mov dword [esi + 0x24], 0
mov dword [esi + 0x2c], 0
mov dword [esi + 0x180], 0
mov dword [esi + 0xd0], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x48], 0
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x100]
cmp byte [eax + 0x1fe], 0
je 0x540f63
cmp byte [esi + 0x30c], 0
je 0x540f63
mov eax, dword [esi + 0x40]
mov eax, dword [eax]
mov dword [esi + 0x14], eax
lea ecx, [eax + 8]
mov eax, dword [eax + 8]
test al, 8
jne 0x540cd1
mov edx, eax
add edx, 0x10
jb 0x540cd1
lock cmpxchg dword [ecx], edx
je 0x540cea
mov byte [esi + 0xf], 1
mov dword [esi + 0x498], 9
mov dword [esi + 0x18], ecx
call fcn.00719890
mov ecx, dword [esi + 0x18]
mov edx, dword [esi + 0x14]
mov eax, 0xfffffff0
movss xmm1, dword [edx + 0x2d0]
movss xmm0, dword [edx + 0x2d4]
lock xadd dword [edx + 8], eax
and eax, 0xfffffff2
cmp eax, 0x12
jne 0x540d36
mov byte [esi + 0xf], 1
mov dword [esi + 0x498], 9
movss dword [esi + 0x14], xmm0
movss dword [esi + 0x18], xmm1
call fcn.00719c10
movss xmm1, dword [esi + 0x18]
movss xmm0, dword [esi + 0x14]
xorps xmm2, xmm2
ucomiss xmm1, xmm2
jne 0x540d4b
jp 0x540d4b
ucomiss xmm0, xmm2
jne 0x540d4b
jnp 0x540f63
mov ecx, dword [ebp + 8]
mov eax, dword [esi + 0xb8]
movss xmm1, dword [esi + 0x2e8]
movss xmm0, dword [esi + 0x2ec]
mov ebx, dword [ecx + 0x100]
mov ecx, dword [eax + 0x14]
mov edi, dword [ebx + 0x1c4]
test ecx, ecx
je 0x540e56
mov eax, dword [eax + 0xc]
mov dword [esi + 0x44], ecx
shl ecx, 5
mov dword [esi + 0x50], ebx
mov dword [esi + 0xa0], edi
xor ebx, ebx
xor edi, edi
mov dword [esi + 0x14], 0
lea ecx, [ecx + ecx*2]
neg ecx
mov dword [esi + 0x18], ecx
mov dword [esi + 0x28], eax
add eax, 0x5c
jmp 0x540dc3
inc edi
mov dword [esi + 0x14], 0
add ebx, 0xffffffa0
add eax, 0x60
cmp dword [esi + 0x18], ebx
je 0x540e1d
cmp edi, dword [esi + 0x180]
jne 0x540e04
mov edx, dword [esi + 0x2c]
sub edx, dword [esi + 0x14]
jb 0x540e04
mov ecx, dword [eax - 4]
mov dword [esi + 0x30], edi
mov edi, dword [esi + 0x14]
add edi, ecx
mov dword [esi + 0xc0], ecx
cmp dword [esi + 0x2c], edi
mov edi, dword [esi + 0x30]
jbe 0x540df1
cmp byte [eax], 0
je 0x540e04
cmp byte [esi + 0x24], 0
je 0x540e5e
cmp byte [eax], 0
jne 0x540e5e
cmp edx, dword [esi + 0xc0]
jb 0x540e5e
cmp byte [eax], 0
jne 0x540db0
mov ecx, dword [esi + 0x14]
add ecx, dword [eax - 4]
mov dword [esi + 0x14], ecx
add ebx, 0xffffffa0
add eax, 0x60
cmp dword [esi + 0x18], ebx
jne 0x540dc3
mov eax, dword [esi + 0x44]
mov edi, dword [esi + 0xa0]
mov ebx, dword [esi + 0x50]
xorps xmm4, xmm4
xorps xmm3, xmm3
test eax, eax
je 0x540ea4
mov ecx, dword [esi + 0x28]
lea edx, [eax + eax*2]
shl edx, 5
lea edi, [edx + ecx - 0x1c]
lea eax, [edx + ecx - 0x18]
lea edx, [edx + ecx - 0x14]
mov dword [esi + 0x14], edi
mov edi, dword [esi + 0xa0]
mov ecx, dword [esi + 0x14]
jmp 0x540e8e
xorps xmm4, xmm4
xorps xmm3, xmm3
jmp 0x540ea4
imul ecx, edx, 0x34
mov edi, dword [esi + 0xa0]
add ecx, dword [eax - 0xc]
xor eax, eax
cmp dword [esi + 0xc0], edx
mov edx, dword [esi + 0x28]
cmova eax, ecx
sub edx, ebx
mov ebx, dword [esi + 0x50]
lea ecx, [eax + 4]
test eax, eax
lea eax, [edx + 0x48]
cmovne eax, ecx
lea ecx, [edx + 0x44]
add edx, 0x4c
movss xmm4, dword [ecx]
movss xmm2, dword [eax]
movss xmm3, dword [edx]
mov dword [esi + 0x498], 9
addss xmm0, xmm4
subss xmm3, xmm4
movaps xmm4, xmmword [esi + 0x410]
addss xmm1, xmm2
subss xmm2, xmm2
mov eax, dword [ebx + 0x1f0]
lea ecx, [esi + 0x3b0]
lea edx, [esi + 0xf8]
mov byte [esi + 0xf], 1
mov dword [esi + 0x498], 9
addss xmm3, xmm0
addss xmm2, xmm1
addss xmm4, xmm0
movaps xmm5, xmm4
maxss xmm5, xmm3
cmpunordss xmm3, xmm3
movaps xmm6, xmm3
andps xmm3, xmm4
andnps xmm6, xmm5
movss xmm5, dword [0x725644]
orps xmm3, xmm6
movss xmm6, dword [0x725cc0]
addss xmm2, xmm5
addss xmm3, xmm5
addss xmm1, xmm6
addss xmm0, xmm6
addss xmm2, xmm1
mulss xmm2, dword [0x725640]
movss dword [esi + 0xf8], xmm2
movss dword [esi + 0xfc], xmm0
movss dword [esi + 0x100], xmm2
movss dword [esi + 0x104], xmm3
mov dword [esi + 0x108], eax
mov dword [esi + 0x10c], edi
mov byte [esi + 0x124], 5
call fcn.005606f0
cmp byte [esi + 0x313], 0
je 0x540ff4
mov byte [esi + 0xf], 1
mov dword [esi + 0x498], 9
push dword [esi + 0x20]
call dword [esi + 0x15c]
add esp, 4
mov ecx, eax
mov eax, dword [esi + 0x24]
mov ebx, dword [esi + 0xd0]
mov edi, edx
and al, 1
test ebx, ebx
mov dword [esi + 0x24], eax
je 0x5410ad
mov eax, ecx
mov dword [esi + 0xf8], ecx
mov dword [esi + 0x10], ecx
lea ecx, [esi + 0xf8]
add eax, edi
mov dword [esi + 0xfc], eax
lea eax, [ebx - 1]
mov dword [esi + 0x100], eax
call fcn.00547a90
mov edx, edi
cmp eax, 0x110000
jne 0x5410cb
mov ecx, dword [esi + 0x10]
push ebx
call fcn.00547f80
add esp, 4
xor edx, edx
mov ecx, dword [esi + 0x24]
mov dword [esi + 0xd0], eax
jmp 0x5416d3
cmp byte [esi + 0x318], 0
je 0x541108
mov byte [esi + 0xf], 1
mov dword [esi + 0x498], 9
push dword [esi + 0x20]
call dword [esi + 0x15c]
add esp, 4
mov ecx, eax
mov edi, eax
mov eax, dword [esi + 0x24]
mov ebx, dword [esi + 0xd0]
add ecx, edx
and al, 1
test ebx, ebx
mov dword [esi + 0x24], eax
je 0x54133a
mov dword [esi + 0x68], edi
lea eax, [ebx - 1]
mov dword [esi + 0x6c], ecx
mov dword [esi + 0x10], ecx
lea ecx, [esi + 0x68]
mov dword [esi + 0x14], edx
mov dword [esi + 0x70], eax
call fcn.00547a90
cmp eax, 0x110000
jne 0x54144b
mov eax, dword [esi + 0x10]
lea ecx, [esi + 0x1b8]
mov dword [esi + 0x1b8], edi
mov dword [esi + 0x1bc], eax
mov dword [esi + 0x1c0], ebx
call fcn.00547a90
cmp eax, 0x110000
mov edi, ebx
je 0x541b46
lea ecx, [esi + 0x1b8]
call fcn.00547a90
cmp eax, 0x110000
jne 0x541ad6
mov ebx, dword [esi + 0xd0]
lea edi, [ebx + 1]
jmp 0x541b46
mov edx, edi
push 0
call fcn.00547f80
add esp, 4
mov ecx, dword [esi + 0x24]
mov dword [esi + 0xd0], eax
xor ebx, ebx
xor edx, edx
jmp 0x5416d3
mov ebx, dword [esi + 0x10]
lea ecx, [esi + 0xf8]
mov edi, eax
mov dword [esi + 0x14], edx
call fcn.00547a90
cmp eax, 0x110000
jne 0x5412e3
mov edx, dword [esi + 0x14]
mov ecx, ebx
push dword [esi + 0xd0]
call fcn.005480e0
add esp, 4
mov edx, dword [esi + 0x24]
mov ebx, eax
mov cl, 1
jmp 0x5416d3
cmp byte [esi + 0x160], 0
je 0x5420f8
cmp byte [esi + 0x30c], 0
je 0x541516
mov eax, dword [esi + 0x40]
mov ecx, dword [eax]
lea eax, [ecx + 8]
mov dword [esi + 0x18], ecx
mov dword [esi + 0x14], eax
mov eax, dword [ecx + 8]
test al, 8
jne 0x541147
mov ecx, eax
add ecx, 0x10
jb 0x541147
mov edx, dword [esi + 0x14]
lock cmpxchg dword [edx], ecx
je 0x54115d
mov ecx, dword [esi + 0x14]
mov byte [esi + 0xf], 1
mov dword [esi + 0x498], 9
call fcn.00719890
mov ecx, dword [esi + 0x18]
mov eax, dword [ecx + 0x30c]
mov ecx, dword [ecx + 0x314]
shl ecx, 3
lea ecx, [ecx + ecx*2]
nop word cs:[eax + eax]
nop dword [eax]
mov edx, ecx
test ecx, ecx
je 0x541191
cmp byte [eax], 1
lea eax, [eax + 0x18]
lea ecx, [edx - 0x18]
jne 0x541180
mov ecx, dword [esi + 0x14]
mov dword [esi + 0x18], edx
mov eax, 0xfffffff0
lock xadd dword [ecx], eax
and eax, 0xfffffff2
cmp eax, 0x12
jne 0x5411be
mov ecx, dword [esi + 0x14]
mov byte [esi + 0xf], 1
mov dword [esi + 0x498], 9
call fcn.00719c10
cmp dword [esi + 0x18], 0
je 0x541516
mov eax, dword [esi + 0x40]
lea edx, [esi + 0x1a8]
mov byte [esi + 0xf], 1
mov dword [esi + 0x498], 9
mov ecx, dword [eax]
call fcn.0050fc00
mov ecx, dword [esi + 0x40]
mov byte [esi + 0xf], 1
call fcn.0050f480
test al, al
je 0x541e9d
mov eax, dword [esi + 0xb8]
lea ecx, [esi + 0xf8]
lea edx, [esi + 0x208]
push dword [eax + 0x14]
push dword [eax + 0xc]
call fcn.0055c340
add esp, 8
cmp byte [esi + 0x12c], 2
mov ecx, dword [esi + 0xd0]
jne 0x546cec
mov edi, dword [esi + 0x48]
mov eax, dword [esi + 0x10]
mov edx, dword [esi + 0x24]
mov ebx, dword [esi + 0x180]
mov dword [esi + 0x218], edi
mov dword [esi + 0x21c], eax
movzx eax, byte [esi + 0x1ba]
mov dword [esi + 0x220], ecx
mov byte [esi + 0x224], dl
mov byte [esi + 0x227], al
movzx eax, word [esi + 0x1b8]
mov word [esi + 0x225], ax
mov eax, dword [esi + 0x2c]
mov dword [esi + 0x228], ebx
mov dword [esi + 0x22c], eax
movzx eax, byte [esi + 0x6a]
mov byte [esi + 0x230], dl
mov byte [esi + 0x233], al
movzx eax, word [esi + 0x68]
mov word [esi + 0x231], ax
mov eax, dword [esi + 0x10]
mov dword [esi + 0x234], edi
movzx edi, word [esi + 0x1b8]
mov dword [esi + 0x238], eax
mov dword [esi + 0x23c], ecx
movzx eax, byte [esi + 0x1ba]
mov ecx, dword [esi + 0x2c]
mov byte [esi + 0x240], dl
mov word [esi + 0x241], di
mov byte [esi + 0x243], al
mov dword [esi + 0x244], ebx
mov dword [esi + 0x248], ecx
jmp 0x541f57
lea ecx, [edi - 0x30]
cmp ecx, 0xa
lea ecx, [edi - 0x41]
setb dl
cmp ecx, 0x1a
setb cl
or cl, dl
je 0x5414a0
lea edx, [eax - 0x30]
cmp edx, 0xa
jb 0x541482
lea edx, [eax - 0x41]
cmp edx, 0x1a
jb 0x541482
cmp eax, 0x5f
je 0x541482
lea edx, [eax - 0x61]
cmp edx, 0x1a
jb 0x541482
test cl, cl
jne 0x5416a3
lea edx, [edi - 0x61]
jmp 0x5414b5
mov dword [esi + 0x1b8], edi
mov dword [esi + 0x1bc], ecx
lea ecx, [esi + 0x1b8]
mov dword [esi + 0x1c0], 0
call fcn.00547a90
xor edx, edx
cmp eax, 0x110000
mov ebx, 0
je 0x5413f0
lea ecx, [esi + 0x1b8]
call fcn.00547a90
xor edx, edx
mov ebx, 1
cmp eax, 0x110000
je 0x5413f0
mov ecx, dword [esi + 0x1c0]
movsd xmm0, qword [esi + 0x1b8]
cmp eax, 0xd
mov ebx, 2
lea edi, [esi + 0xf8]
sete dl
cmp eax, 0xa
sete al
or al, dl
mov dword [esi + 0x100], ecx
movsd qword [esi + 0xf8], xmm0
mov byte [esi + 0x10], al
mov ecx, edi
call fcn.00547a90
cmp eax, 0x110000
je 0x5413ee
cmp eax, 0xd
sete cl
cmp eax, 0xa
sete al
or al, cl
cmp byte [esi + 0x10], al
jne 0x5413ee
inc ebx
mov ecx, edi
call fcn.00547a90
cmp eax, 0x110000
jne 0x5413cc
xor edx, edx
mov ecx, dword [esi + 0x24]
mov dword [esi + 0x160], 0
mov eax, dword [esi + 0xb8]
mov edi, dword [eax + 0x14]
test edi, edi
jne 0x541b68
xor eax, eax
xor edi, edi
mov dword [esi + 0xd0], 0
mov dword [esi + 0x14], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0xc0], 0
xor ebx, ebx
xor edx, edx
mov dword [esi + 0x30], 0
mov dword [esi + 0x18], 0
jmp 0x54207f
lea ecx, [esi + 0x68]
mov ebx, edi
mov edi, eax
call fcn.00547a90
cmp eax, 0x110000
jne 0x541627
mov ecx, ebx
mov edx, dword [esi + 0x14]
mov ebx, dword [esi + 0xd0]
push ebx
call fcn.00547c40
add esp, 4
mov ecx, dword [esi + 0x24]
mov edx, eax
mov al, 1
jmp 0x541b4f
mov ecx, dword [esi + 0xd0]
mov eax, 0xffffffff
mov edi, ebx
inc ecx
cmovne eax, ecx
mov ecx, ebx
mov ebx, dword [esi + 0x14]
mov edx, ebx
push eax
jmp 0x5416b2
cmp edi, 0x5f
je 0x5412fd
lea edx, [edi - 0x61]
cmp edx, 0x1a
jb 0x5412fd
cmp edi, 0x5f
je 0x5416a3
cmp edx, 0x1a
jb 0x5416a3
lea ecx, [eax - 0x30]
cmp ecx, 0xa
jb 0x541f77
lea ecx, [eax - 0x41]
cmp ecx, 0x1a
jb 0x541f77
cmp eax, 0x5f
je 0x541f77
add eax, 0xffffff9f
cmp eax, 0x1a
jb 0x541f77
mov edx, dword [esi + 0x14]
mov edi, dword [esi + 0xd0]
mov ecx, ebx
push edi
call fcn.005480e0
add esp, 4
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 0x14]
mov ebx, eax
push edi
jmp 0x5416c1
mov eax, dword [esi + 0x40]
mov ecx, dword [eax]
lea eax, [ecx + 8]
mov dword [esi + 0x18], ecx
mov dword [esi + 0x14], eax
mov eax, dword [ecx + 8]
test al, 8
jne 0x54153b
mov ecx, eax
add ecx, 0x10
jb 0x54153b
mov edx, dword [esi + 0x14]
lock cmpxchg dword [edx], ecx
je 0x541551
mov ecx, dword [esi + 0x14]
mov byte [esi + 0xf], 1
mov dword [esi + 0x498], 9
call fcn.00719890
mov ecx, dword [esi + 0x18]
mov eax, 0xfffffff0
movd xmm0, dword [ecx + 0x318]
cmp byte [ecx + 0x31c], 0
movdqa xmmword [esi + 0xc0], xmm0
setne byte [esi + 0x30]
lock xadd dword [ecx + 8], eax
and eax, 0xfffffff2
cmp eax, 0x12
jne 0x541597
mov ecx, dword [esi + 0x14]
mov byte [esi + 0xf], 1
mov dword [esi + 0x498], 9
call fcn.00719c10
movdqa xmm1, xmmword [esi + 0xc0]
pxor xmm0, xmm0
pcmpeqb xmm1, xmm0
pcmpeqd xmm0, xmm0
pxor xmm0, xmm1
punpcklbw xmm0, xmm0
punpcklwd xmm0, xmm0
movmskps eax, xmm0
mov edx, eax
mov ecx, eax
and dl, 2
and cl, 4
shr dl, 1
shr cl, 2
or dl, al
shr al, 3
or cl, al
or dl, cl
or dl, byte [esi + 0x30]
cmp byte [esi + 0x31f], 0
setne al
and al, dl
cmp al, 1
jne 0x5420f8
mov eax, dword [esi + 0xb8]
lea ecx, [esi + 0xf8]
lea edx, [esi + 0x208]
push dword [eax + 0x14]
push dword [eax + 0xc]
call fcn.0055c340
add esp, 8
cmp byte [esi + 0x12c], 2
je 0x5420f8
mov eax, dword [esi + 0x48]
mov edx, dword [esi + 0x10]
mov ecx, dword [esi + 0xd0]
jmp 0x546cf2
cmp edi, 0xa
je 0x541635
cmp edi, 0xd
jne 0x541f87
cmp eax, 0xa
je 0x541643
cmp eax, 0xd
jne 0x546c95
mov ecx, ebx
mov edi, ebx
mov ebx, dword [esi + 0xd0]
mov edx, dword [esi + 0x14]
push ebx
call fcn.00547c40
add esp, 4
mov dword [esi + 0x48], eax
mov eax, dword [esi + 0x10]
lea ecx, [esi + 0x1b8]
mov dword [esi + 0x1b8], edi
mov dword [esi + 0x1bc], eax
mov dword [esi + 0x1c0], ebx
call fcn.00547a90
cmp eax, 0x110000
je 0x546e0b
lea ecx, [esi + 0x1b8]
call fcn.00547a90
cmp eax, 0x110000
jne 0x546da5
inc ebx
jmp 0x546e0b
mov edi, ebx
mov ecx, ebx
mov ebx, dword [esi + 0x14]
mov edx, ebx
push dword [esi + 0xd0]
call fcn.005480e0
add esp, 4
mov edx, ebx
mov ecx, edi
mov ebx, eax
push eax
call fcn.00547f80
add esp, 4
mov dword [esi + 0xd0], eax
mov cl, 1
xor edx, edx
mov eax, dword [esi + 0xb8]
mov dword [esi + 0xb4], edx
mov edi, dword [eax + 0x14]
test edi, edi
mov dword [esi + 0x44], edi
je 0x5417bf
mov eax, dword [eax + 0xc]
test dl, dl
mov dword [esi + 0x2c], ebx
mov dword [esi + 0x24], ecx
lea edx, [eax + 0x5c]
mov dword [esi + 0x154], eax
je 0x5417db
mov eax, dword [esi + 0x44]
mov dword [esi + 0x14], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0xa0], 0
shl eax, 5
lea ecx, [eax + eax*2]
xor eax, eax
jmp 0x54176d
mov edx, dword [esi + 0x18]
xor ebx, ebx
movzx eax, byte [edx]
add edi, eax
mov dword [esi + 0xc0], eax
test eax, eax
mov eax, dword [esi + 0x10]
je 0x5417b9
mov eax, dword [esi + 0x14]
mov ecx, dword [esi + 0x30]
inc dword [esi + 0xa0]
add edx, 0x60
mov dword [esi + 0x10], ebx
add eax, dword [esi + 0xc0]
add ecx, 0xffffffa0
mov dword [esi + 0x14], eax
mov eax, edi
je 0x541854
mov dword [esi + 0x30], ecx
mov ecx, dword [edx - 4]
mov dword [esi + 0x18], edx
mov edx, dword [esi + 0xd0]
mov ebx, edx
lea edi, [ecx + eax]
sub ebx, eax
mov dword [esi + 0x50], ebx
jb 0x541730
cmp edi, edx
jb 0x541730
mov eax, dword [esi + 0x18]
mov ebx, dword [esi + 0x10]
cmp byte [eax], 0
jne 0x541a36
mov eax, dword [esi + 0x50]
cmp eax, ecx
jb 0x541a39
mov edx, dword [esi + 0x18]
add ecx, ebx
mov dword [esi + 0xc0], 0
mov ebx, ecx
jmp 0x541747
add ecx, eax
mov ebx, ecx
jmp 0x541747
xor eax, eax
xor ebx, ebx
mov dword [esi + 0xd0], 0
xor edi, edi
mov dword [esi + 0x10], 0
jmp 0x541a5f
mov eax, dword [esi + 0x44]
xor ecx, ecx
mov dword [esi + 0x14], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0xa0], 0
shl eax, 5
lea eax, [eax + eax*2]
jmp 0x54182b
movzx ecx, byte [edx]
add ebx, dword [esi + 0x10]
inc dword [esi + 0xa0]
mov eax, 0
add edi, ecx
test ecx, ecx
cmovne ebx, eax
mov eax, dword [esi + 0x18]
add dword [esi + 0x14], ecx
add edx, 0x60
mov ecx, edi
mov dword [esi + 0x10], ebx
add eax, 0xffffffa0
je 0x541854
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0xd0]
mov ebx, dword [edx - 4]
lea edi, [ebx + ecx]
sub eax, ecx
jb 0x541800
cmp edi, dword [esi + 0xd0]
jb 0x541800
mov edi, dword [esi + 0xd0]
mov ebx, dword [esi + 0x10]
jmp 0x541a3b
mov edx, dword [esi + 0x44]
mov ecx, dword [esi + 0x154]
lea eax, [edx - 1]
mov dword [esi + 0xa0], eax
lea eax, [eax + eax*2]
shl eax, 5
mov eax, dword [ecx + eax + 0x58]
mov ecx, dword [esi + 0x24]
test edx, edx
mov dword [esi + 0xd0], edi
mov dword [esi + 0x10], ebx
je 0x541a54
test cl, cl
mov dword [esi + 0x50], eax
je 0x541978
mov eax, dword [esi + 0x154]
mov ecx, edx
xor edi, edi
mov dword [esi + 0xc0], 0
mov dword [esi + 0x18], 0
mov dword [esi + 0x30], 0
shl ecx, 5
lea ebx, [ecx + ecx*2]
add eax, 0x5c
jmp 0x54190e
mov eax, dword [esi + 0x180]
movzx ebx, byte [eax]
add edx, ebx
mov dword [esi + 0x28], ebx
mov dword [esi + 0x48], edx
xor edx, edx
test ebx, ebx
mov ebx, dword [esi + 0x18]
je 0x54196f
mov ecx, dword [esi + 0xc0]
mov edi, dword [esi + 0x30]
add ecx, dword [esi + 0x28]
mov ebx, dword [esi + 0x160]
inc edi
add eax, 0x60
mov dword [esi + 0x18], edx
mov dword [esi + 0x30], edi
mov dword [esi + 0xc0], ecx
mov ecx, dword [esi + 0x48]
add ebx, 0xffffffa0
mov edi, ecx
je 0x541a06
mov ecx, dword [eax - 4]
mov dword [esi + 0x180], eax
mov eax, dword [esi + 0x2c]
mov dword [esi + 0x160], ebx
mov ebx, eax
lea edx, [ecx + edi]
sub ebx, edi
mov dword [esi + 0x28], ebx
jb 0x5418c0
cmp edx, eax
jb 0x5418c0
mov eax, dword [esi + 0x180]
mov edi, dword [esi + 0x18]
mov dword [esi + 0x48], edx
cmp byte [eax], 0
jne 0x5419fc
mov edx, dword [esi + 0x28]
cmp edx, ecx
jb 0x5419ff
add ecx, edi
mov edi, dword [esi + 0x30]
mov eax, dword [esi + 0x180]
mov dword [esi + 0x28], 0
mov edx, ecx
mov ecx, dword [esi + 0xc0]
jmp 0x5418e7
add ecx, ebx
mov edx, ecx
jmp 0x5418de
mov eax, dword [esi + 0x154]
mov ecx, edx
xor edi, edi
mov dword [esi + 0xc0], 0
mov dword [esi + 0x18], 0
mov dword [esi + 0x30], 0
shl ecx, 5
lea ebx, [ecx + ecx*2]
add eax, 0x5c
jmp 0x5419de
movzx edi, byte [eax]
add edx, dword [esi + 0x18]
inc dword [esi + 0x30]
mov ebx, 0
add ecx, edi
test edi, edi
cmovne edx, ebx
mov ebx, dword [esi + 0x180]
add dword [esi + 0xc0], edi
add eax, 0x60
mov edi, ecx
mov dword [esi + 0x18], edx
add ebx, 0xffffffa0
je 0x541a06
mov dword [esi + 0x180], ebx
mov ebx, dword [esi + 0x2c]
mov edx, dword [eax - 4]
sub ebx, edi
lea ecx, [edx + edi]
mov dword [esi + 0x28], ebx
jb 0x5419b0
cmp ecx, dword [esi + 0x2c]
jb 0x5419b0
mov edi, dword [esi + 0x18]
mov edx, dword [esi + 0x28]
add edi, edx
mov dword [esi + 0x18], edi
jmp 0x541a25
mov ebx, dword [esi + 0x44]
mov edi, dword [esi + 0x154]
mov dword [esi + 0x18], edx
mov dword [esi + 0x2c], ecx
dec ebx
lea eax, [ebx + ebx*2]
mov dword [esi + 0x30], ebx
shl eax, 5
mov eax, dword [edi + eax + 0x58]
mov edx, eax
mov ecx, dword [esi + 0x24]
mov edi, dword [esi + 0x14]
mov eax, dword [esi + 0xa0]
mov ebx, dword [esi + 0x50]
jmp 0x541a80
mov eax, dword [esi + 0x50]
mov edi, edx
mov ecx, dword [esi + 0x24]
mov edx, dword [esi + 0x44]
add ebx, eax
test edx, edx
mov dword [esi + 0xd0], edi
mov dword [esi + 0x10], ebx
jne 0x541884
mov ebx, eax
mov edi, dword [esi + 0x14]
mov eax, dword [esi + 0xa0]
mov dword [esi + 0xc0], 0
mov dword [esi + 0x2c], 0
xor edx, edx
mov dword [esi + 0x30], 0
mov dword [esi + 0x18], 0
mov dword [esi + 0x218], eax
mov eax, dword [esi + 0xd0]
mov dword [esi + 0x21c], ebx
mov dword [esi + 0x220], eax
mov eax, dword [esi + 0xb4]
mov byte [esi + 0x224], al
mov dword [esi + 0x228], edi
mov edi, dword [esi + 0x10]
mov dword [esi + 0x22c], edi
mov edi, dword [esi + 0x30]
mov byte [esi + 0x230], al
mov dword [esi + 0x234], edi
mov dword [esi + 0x238], edx
mov edx, dword [esi + 0x2c]
mov dword [esi + 0x23c], edx
jmp 0x5420d0
mov ecx, dword [esi + 0xd0]
movsd xmm0, qword [esi + 0x1b8]
cmp eax, 0xd
sete dl
cmp eax, 0xa
sete bl
or bl, dl
lea edi, [ecx + 2]
mov ecx, dword [esi + 0x1c0]
movsd qword [esi + 0xf8], xmm0
mov dword [esi + 0x100], ecx
lea ecx, [esi + 0xf8]
call fcn.00547a90
cmp eax, 0x110000
je 0x541b40
cmp eax, 0xd
sete cl
cmp eax, 0xa
sete al
or al, cl
cmp bl, al
jne 0x541b40
inc edi
lea ecx, [esi + 0xf8]
call fcn.00547a90
cmp eax, 0x110000
jne 0x541b1b
mov ebx, dword [esi + 0xd0]
mov eax, dword [esi + 0x24]
mov edx, ebx
xor ecx, ecx
mov ebx, edi
mov dword [esi + 0x160], ecx
mov ecx, eax
mov eax, dword [esi + 0xb8]
mov edi, dword [eax + 0x14]
test edi, edi
je 0x54140e
mov eax, dword [eax + 0xc]
cmp byte [esi + 0x160], 0
mov dword [esi + 0x48], edx
mov dword [esi + 0x24], ecx
mov dword [esi + 0xd0], ebx
mov dword [esi + 0x44], edi
mov dword [esi + 0x28], eax
lea edx, [eax + 0x5c]
mov eax, edi
je 0x541c49
shl eax, 5
mov dword [esi + 0x14], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0xa0], 0
lea ecx, [eax + eax*2]
xor eax, eax
jmp 0x541bfd
mov edx, dword [esi + 0x18]
xor ebx, ebx
movzx eax, byte [edx]
add edi, eax
mov dword [esi + 0xc0], eax
test eax, eax
mov eax, dword [esi + 0x10]
je 0x541c43
mov eax, dword [esi + 0x14]
mov ecx, dword [esi + 0x30]
inc dword [esi + 0xa0]
add edx, 0x60
mov dword [esi + 0x10], ebx
add eax, dword [esi + 0xc0]
add ecx, 0xffffffa0
mov dword [esi + 0x14], eax
mov eax, edi
je 0x541cc1
mov dword [esi + 0x30], ecx
mov ecx, dword [edx - 4]
mov dword [esi + 0x18], edx
mov edx, dword [esi + 0xd0]
mov ebx, edx
lea edi, [ecx + eax]
sub ebx, eax
jb 0x541bc0
cmp edi, edx
jb 0x541bc0
mov eax, dword [esi + 0x18]
cmp byte [eax], 0
mov eax, dword [esi + 0x10]
jne 0x541cdc
cmp ebx, ecx
jb 0x541cdc
mov edx, dword [esi + 0x18]
add ecx, eax
mov dword [esi + 0xc0], 0
mov ebx, ecx
jmp 0x541bd7
add ecx, eax
mov ebx, ecx
jmp 0x541bd7
shl eax, 5
xor ecx, ecx
mov dword [esi + 0x14], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0xa0], 0
lea eax, [eax + eax*2]
jmp 0x541c9b
movzx ecx, byte [edx]
add ebx, dword [esi + 0x10]
inc dword [esi + 0xa0]
mov eax, 0
add edi, ecx
test ecx, ecx
cmovne ebx, eax
mov eax, dword [esi + 0x18]
add dword [esi + 0x14], ecx
add edx, 0x60
mov ecx, edi
mov dword [esi + 0x10], ebx
add eax, 0xffffffa0
je 0x541cc1
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0xd0]
mov ebx, dword [edx - 4]
lea edi, [ebx + ecx]
sub eax, ecx
jb 0x541c70
cmp edi, dword [esi + 0xd0]
jb 0x541c70
mov edi, dword [esi + 0xd0]
mov ecx, dword [esi + 0x10]
jmp 0x541ce2
mov edx, dword [esi + 0x44]
mov ecx, dword [esi + 0x28]
lea eax, [edx - 1]
mov dword [esi + 0xa0], eax
lea eax, [eax + eax*2]
shl eax, 5
mov eax, dword [ecx + eax + 0x58]
jmp 0x541ce9
mov ecx, eax
mov edi, edx
mov eax, ebx
add ecx, eax
mov edx, dword [esi + 0x44]
mov ebx, ecx
mov ecx, dword [esi + 0x24]
test edx, edx
mov dword [esi + 0xd0], edi
mov dword [esi + 0x10], ebx
je 0x541dd2
test cl, cl
mov dword [esi + 0xb4], eax
je 0x541dfb
mov eax, dword [esi + 0x28]
xor edi, edi
mov dword [esi + 0xc0], 0
mov dword [esi + 0x18], 0
mov dword [esi + 0x30], 0
lea ebx, [eax + 0x5c]
mov eax, edx
shl eax, 5
lea eax, [eax + eax*2]
jmp 0x541d81
mov ebx, dword [esi + 0x50]
xor edx, edx
movzx eax, byte [ebx]
add edi, eax
mov dword [esi + 0x2c], eax
test eax, eax
mov eax, dword [esi + 0x18]
je 0x541dcc
mov eax, dword [esi + 0xc0]
mov ecx, dword [esi + 0x30]
add ebx, 0x60
mov dword [esi + 0x18], edx
add eax, dword [esi + 0x2c]
inc ecx
mov dword [esi + 0x30], ecx
mov ecx, edi
mov dword [esi + 0xc0], eax
mov eax, dword [esi + 0x180]
add eax, 0xffffffa0
je 0x541e7d
mov ecx, dword [ebx - 4]
mov dword [esi + 0x50], ebx
mov ebx, dword [esi + 0x48]
mov dword [esi + 0x180], eax
mov eax, ebx
lea edx, [ecx + edi]
sub eax, edi
mov edi, edx
mov dword [esi + 0x2c], eax
jb 0x541d40
cmp edi, ebx
jb 0x541d40
mov eax, dword [esi + 0x50]
cmp byte [eax], 0
mov eax, dword [esi + 0x18]
jne 0x542068
mov edx, dword [esi + 0x2c]
cmp edx, ecx
jb 0x54206b
mov ebx, dword [esi + 0x50]
add ecx, eax
mov dword [esi + 0x2c], 0
mov edx, ecx
jmp 0x541d54
add ecx, eax
mov edx, ecx
jmp 0x541d54
mov edi, eax
mov eax, dword [esi + 0xa0]
mov dword [esi + 0xc0], 0
xor edx, edx
mov dword [esi + 0x30], 0
xor ebx, ebx
mov dword [esi + 0x18], 0
jmp 0x54207f
mov eax, dword [esi + 0x28]
mov ecx, edx
xor ebx, ebx
mov dword [esi + 0xc0], 0
mov dword [esi + 0x18], 0
mov dword [esi + 0x30], 0
shl ecx, 5
lea edi, [ecx + ecx*2]
add eax, 0x5c
jmp 0x541e5b
movzx edi, byte [eax]
add edx, dword [esi + 0x18]
inc dword [esi + 0x30]
mov ebx, 0
add ecx, edi
test edi, edi
cmovne edx, ebx
add dword [esi + 0xc0], edi
mov edi, dword [esi + 0x50]
add eax, 0x60
mov ebx, ecx
mov dword [esi + 0x18], edx
add edi, 0xffffffa0
je 0x541e7d
mov dword [esi + 0x50], edi
mov edi, dword [esi + 0x48]
mov edx, dword [eax - 4]
lea ecx, [edx + ebx]
sub edi, ebx
jb 0x541e30
cmp ecx, dword [esi + 0x48]
jb 0x541e30
mov ebx, dword [esi + 0x48]
mov eax, dword [esi + 0x18]
mov edx, edi
jmp 0x54206b
mov ebx, dword [esi + 0x44]
mov edi, dword [esi + 0x28]
mov dword [esi + 0x18], edx
dec ebx
lea eax, [ebx + ebx*2]
mov dword [esi + 0x30], ebx
mov ebx, ecx
shl eax, 5
mov eax, dword [edi + eax + 0x58]
mov edx, eax
jmp 0x542070
mov eax, dword [esi + 0x48]
mov edi, dword [esi + 0x10]
mov edx, dword [esi + 0x24]
mov ecx, dword [esi + 0x180]
mov ebx, dword [esi + 0x2c]
mov dword [esi + 0x218], eax
mov eax, dword [esi + 0xd0]
mov dword [esi + 0x21c], edi
mov dword [esi + 0x220], eax
movzx eax, byte [esi + 0x1ba]
mov byte [esi + 0x224], dl
mov byte [esi + 0x227], al
movzx eax, word [esi + 0x1b8]
mov word [esi + 0x225], ax
movzx eax, byte [esi + 0x6a]
mov dword [esi + 0x228], ecx
mov dword [esi + 0x22c], ebx
mov byte [esi + 0x230], dl
mov byte [esi + 0x233], al
movzx eax, word [esi + 0x68]
mov word [esi + 0x231], ax
mov eax, dword [esi + 0x48]
mov dword [esi + 0x234], eax
mov eax, dword [esi + 0xd0]
mov dword [esi + 0x238], edi
movzx edi, word [esi + 0x1b8]
mov dword [esi + 0x23c], eax
movzx eax, byte [esi + 0x1ba]
mov byte [esi + 0x240], dl
mov word [esi + 0x241], di
mov byte [esi + 0x243], al
mov dword [esi + 0x244], ecx
mov dword [esi + 0x248], ebx
movzx eax, byte [esi + 0x6a]
movzx ecx, word [esi + 0x68]
mov byte [esi + 0x24c], dl
mov byte [esi + 0x24f], al
mov word [esi + 0x24d], cx
jmp 0x5420f1
mov ecx, ebx
mov edx, dword [esi + 0x14]
mov ebx, dword [esi + 0xd0]
jmp 0x540fdb
cmp eax, 0xa
je 0x541f95
cmp eax, 0xd
jne 0x546e17
mov edx, dword [esi + 0x14]
mov ecx, ebx
mov edi, ebx
push dword [esi + 0xd0]
call fcn.00547c40
add esp, 4
mov ebx, eax
mov eax, dword [esi + 0x10]
lea ecx, [esi + 0x1b8]
mov dword [esi + 0x1b8], edi
mov dword [esi + 0x1bc], eax
mov dword [esi + 0x1c0], ebx
call fcn.00547a90
mov edx, ebx
cmp eax, 0x110000
je 0x546f77
lea ecx, [esi + 0x1b8]
mov dword [esi + 0x48], edx
call fcn.00547a90
cmp eax, 0x110000
je 0x546e7e
mov ebx, dword [esi + 0x48]
mov ecx, dword [esi + 0x1c0]
movsd xmm0, qword [esi + 0x1b8]
lea edi, [esi + 0xf8]
add ebx, 2
cmp eax, 0xd
mov dword [esi + 0x100], ecx
movsd qword [esi + 0xf8], xmm0
sete cl
cmp eax, 0xa
sete al
or al, cl
mov byte [esi + 0x10], al
mov ecx, edi
call fcn.00547a90
cmp eax, 0x110000
je 0x546f74
cmp eax, 0xd
sete cl
cmp eax, 0xa
sete al
or al, cl
cmp byte [esi + 0x10], al
jne 0x546f74
inc ebx
mov ecx, edi
call fcn.00547a90
cmp eax, 0x110000
jne 0x54203d
jmp 0x546f74
mov edx, dword [esi + 0x2c]
add eax, edx
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x24]
mov eax, dword [esi + 0xa0]
mov edi, dword [esi + 0xb4]
mov dword [esi + 0x218], eax
mov eax, dword [esi + 0xd0]
mov dword [esi + 0x21c], edi
mov edi, dword [esi + 0x14]
mov dword [esi + 0x220], eax
mov eax, dword [esi + 0x160]
mov byte [esi + 0x224], al
mov dword [esi + 0x228], edi
mov edi, dword [esi + 0x10]
mov dword [esi + 0x22c], edi
mov edi, dword [esi + 0x30]
mov byte [esi + 0x230], al
mov dword [esi + 0x234], edi
mov dword [esi + 0x238], edx
mov dword [esi + 0x23c], ebx
mov eax, dword [esi + 0xc0]
mov edx, dword [esi + 0x18]
mov byte [esi + 0x240], cl
mov dword [esi + 0x244], eax
mov dword [esi + 0x248], edx
mov byte [esi + 0x24c], cl
mov byte [esi + 0x214], 2
cmp byte [esi + 0x30c], 0
je 0x542160
mov eax, dword [esi + 0x40]
mov edx, 8
xor ebx, ebx
mov edi, dword [eax]
xor eax, eax
lock cmpxchg dword [edi + 8], edx
lea ecx, [edi + 8]
je 0x54213a
mov byte [esi + 0xf], 1
mov dword [esi + 0x498], 9
mov dword [esi + 0x10], ecx
mov dword [esi + 0x14], edi
call fcn.007188f0
mov edi, dword [esi + 0x14]
mov ecx, dword [esi + 0x10]
xor ebx, ebx
mov byte [edi + 0x47d], 9
mov eax, 8
lock cmpxchg dword [edi + 8], ebx
je 0x542160
mov byte [esi + 0xf], 1
mov dword [esi + 0x498], 9
call fcn.00719150
mov eax, dword [esi + 0xb8]
lea ecx, [esi + 0x450]
lea edx, [esi + 0x208]
push dword [eax + 0x14]
push dword [eax + 0xc]
call fcn.0055c340
add esp, 8
cmp byte [esi + 0x64], 0
mov byte [esi + 0x30], 2
je 0x542398
mov eax, dword [esi + 0x40]
mov edi, dword [eax]
mov eax, dword [edi + 8]
lea ecx, [edi + 8]
test al, 8
jne 0x5421aa
mov edx, eax
add edx, 0x10
jb 0x5421aa
lock cmpxchg dword [ecx], edx
je 0x5421c9
mov byte [esi + 0xf], 1
mov dword [esi + 0x498], 9
mov dword [esi + 0x10], ecx
mov dword [esi + 0x14], edi
call fcn.00719890
mov edi, dword [esi + 0x14]
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 0x1a8]
mov edx, dword [esi + 0x1ac]
mov ebx, dword [edi + 0x3c]
mov dword [esi + 0x18], eax
mov eax, dword [edi + 0x30]
mov dword [esi + 0x10], eax
mov eax, dword [edi + 0x34]
mov dword [esi + 0x14], eax
mov eax, dword [edi + 0x38]
mov dword [esi + 0xd0], eax
mov eax, 0xfffffff0
lock xadd dword [edi + 8], eax
and eax, 0xfffffff2
cmp eax, 0x12
jne 0x54222d
mov byte [esi + 0xf], 1
mov dword [esi + 0x498], 9
mov dword [esi + 0xc0], edx
mov dword [esi + 0xa0], ebx
call fcn.00719c10
mov ebx, dword [esi + 0xa0]
mov edx, dword [esi + 0xc0]
mov eax, dword [esi + 0x14]
or dword [esi + 0x10], eax
je 0x542398
mov eax, dword [esi + 0xd0]
xor ebx, edx
mov edx, dword [esi + 0x3a0]
xor eax, dword [esi + 0x18]
or ebx, eax
jne 0x544be4
mov eax, dword [esi + 0x40]
mov edx, 8
mov edi, dword [eax]
lea eax, [edi + 8]
mov dword [esi + 0x10], eax
xor eax, eax
lock cmpxchg dword [edi + 8], edx
je 0x542287
mov ecx, dword [esi + 0x10]
mov byte [esi + 0xf], 1
mov dword [esi + 0x498], 9
mov dword [esi + 0x14], edi
call fcn.007188f0
mov edi, dword [esi + 0x14]
mov eax, dword [edi + 0x40]
or eax, dword [edi + 0x44]
je 0x5422c9
mov ecx, dword [esi + 0x1a8]
mov edx, dword [edi + 0x48]
mov eax, edi
mov ebx, dword [esi + 0x1ac]
mov edi, dword [edi + 0x4c]
xor edx, ecx
xor edi, ebx
or edi, edx
jne 0x5422c9
mov edx, dword [eax + 0x30]
mov edi, eax
or edx, dword [eax + 0x34]
je 0x5422c9
xor ecx, dword [edi + 0x38]
xor ebx, dword [edi + 0x3c]
or ebx, ecx
jne 0x5422c9
movzx eax, byte [esi + 0x400]
mov byte [edi + 0x71], al
mov ecx, dword [esi + 0x10]
xor edx, edx
mov eax, 8
lock cmpxchg dword [ecx], edx
je 0x5422ef
mov ecx, dword [esi + 0x10]
mov byte [esi + 0xf], 1
mov dword [esi + 0x498], 9
call fcn.00719150
cmp byte [esi + 0x158], 0
mov eax, dword [esi + 0xb8]
je 0x54239d
mov edi, dword [eax + 0x14]
test edi, edi
je 0x5423a0
mov dword [esi + 0xc0], eax
mov eax, dword [eax + 0xc]
mov dword [esi + 0xa0], edi
shl edi, 5
xor ebx, ebx
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], eax
lea eax, [edi + edi*2]
xor edi, edi
mov dword [esi + 0x18], eax
xor eax, eax
nop word cs:[eax + eax]
nop
mov ecx, dword [esi + 0x14]
movzx edx, byte [ecx + eax + 0x5c]
mov ecx, dword [ecx + eax + 0x58]
add ecx, edx
add ebx, edx
add dword [esi + 0x10], ecx
add edi, ecx
test edx, edx
mov edx, 0
cmovne edi, edx
add eax, 0x60
cmp dword [esi + 0x18], eax
jne 0x542340
cmp dword [esi + 0x14], 0
mov ecx, edi
mov al, 1
mov dword [esi + 0x18], eax
je 0x5423ca
mov eax, dword [esi + 0xa0]
mov edx, dword [esi + 0x14]
mov edi, eax
dec eax
mov dword [esi + 0x30], eax
lea eax, [eax + eax*2]
shl eax, 5
mov eax, dword [edx + eax + 0x58]
mov dword [esi + 0x14], eax
mov eax, dword [esi + 0xc0]
jmp 0x5423e4
jmp 0x544bde
mov edi, dword [eax + 0x14]
xor ebx, ebx
mov dword [esi + 0xd0], 0
mov dword [esi + 0x18], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0
mov dword [esi + 0x30], 0
jmp 0x5423ec
mov eax, dword [esi + 0xc0]
mov edi, dword [esi + 0xa0]
mov dword [esi + 0x14], 0
mov dword [esi + 0x30], 0
mov dword [esi + 0xd0], ebx
mov ebx, ecx
movq xmm0, qword [esi + 0x1a8]
lea ecx, [esi + 0xf8]
lea edx, [esi + 0x208]
movq qword [esi + 0x2b0], xmm0
push edi
push dword [eax + 0xc]
call fcn.0055c340
add esp, 8
cmp byte [esi + 0x12c], 2
jne 0x542476
mov edi, dword [esi + 0x30]
mov edx, dword [esi + 0x14]
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 0xd0]
mov dword [esi + 0x68], edi
mov dword [esi + 0x6c], edx
mov dword [esi + 0x70], ecx
mov ecx, dword [esi + 0x18]
mov byte [esi + 0x74], cl
mov dword [esi + 0x78], eax
mov dword [esi + 0x7c], ebx
mov byte [esi + 0x80], cl
mov dword [esi + 0x84], edi
mov edi, dword [esi + 0x10]
mov dword [esi + 0x88], edx
mov dword [esi + 0x8c], edi
mov byte [esi + 0x90], cl
mov dword [esi + 0x94], eax
mov dword [esi + 0x98], ebx
mov byte [esi + 0x9c], cl
jmp 0x5424dd
movsd xmm2, qword [esi + 0x120]
movsd xmm1, qword [esi + 0x118]
movq xmm0, qword [esi + 0x128]
movsd qword [esi + 0x90], xmm2
movsd qword [esi + 0x88], xmm1
movsd xmm2, qword [esi + 0x110]
movsd xmm1, qword [esi + 0x108]
movq qword [esi + 0x98], xmm0
movsd qword [esi + 0x80], xmm2
movsd qword [esi + 0x78], xmm1
movsd xmm2, qword [esi + 0xf8]
movsd xmm1, qword [esi + 0x100]
movsd qword [esi + 0x70], xmm1
movsd qword [esi + 0x68], xmm2
mov edi, dword [esi + 0x250]
mov dl, 1
xor eax, eax
mov dword [esi + 0x18], edi
lea ecx, [edi + 8]
lock cmpxchg byte [edi + 8], dl
mov dword [esi + 0x14], ecx
je 0x54250a
mov byte [esi + 0xf], 1
mov dword [esi + 0x498], 9
call fcn.0071aab0
mov eax, dword [esi + 0x40]
mov edi, dword [eax]
mov eax, dword [edi + 8]
lea ecx, [edi + 8]
test al, 8
jne 0x542526
mov edx, eax
add edx, 0x10
jb 0x542526
lock cmpxchg dword [ecx], edx
je 0x542541
mov dword [esi + 0x498], 0x22
mov dword [esi + 0x10], ecx
mov dword [esi + 0x30], edi
call fcn.00719890
mov edi, dword [esi + 0x30]
mov ecx, dword [esi + 0x10]
movq xmm0, qword [edi + 0x358]
mov eax, 0xfffffff0
movq qword [esi + 0x30], xmm0
lock xadd dword [edi + 8], eax
mov dword [esi + 0x498], 0x22
and eax, 0xfffffff2
cmp eax, 0x12
jne 0x54256f
call fcn.00719c10
mov eax, dword [esi + 0x70]
mov dword [esi + 0xa0], eax
movzx eax, byte [esi + 0x74]
mov byte [esi + 0x50], al
mov eax, dword [esi + 0x8c]
mov dword [esi + 0xd0], eax
movzx eax, byte [esi + 0x90]
mov byte [esi + 0xc0], al
push dword [esi + 0x20]
call dword [esi + 0x15c]
add esp, 4
mov edi, eax
test edx, edx
je 0x5425ff
test edx, edx
setns al
js 0x547082
mov byte [esi + 0x10], al
movzx eax, byte [0x919aa5]
mov eax, dword [0x919820]
test eax, eax
jne 0x5425db
mov ebx, edx
call dword [sym.imp.kernel32.dll_GetProcessHeap]
mov edx, ebx
test eax, eax
je 0x5425ed
mov dword [0x919820], eax
push edx
push 0
push eax
mov ebx, edx
call dword [sym.imp.kernel32.dll_HeapAlloc]
mov edx, ebx
test eax, eax
jne 0x542604
movzx eax, byte [esi + 0x10]
xor ecx, ecx
mov cl, al
call fcn.00709d20
jmp 0x547145
mov eax, 1
mov ebx, dword [esi + 0x18]
mov dword [esi + 0x10], eax
add ebx, 0x10
push edx
push edi
push eax
mov edi, edx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 0xa0]
movzx edx, byte [esi + 0x292]
mov ecx, dword [esi + 0x10]
movq xmm0, qword [esi + 0x30]
mov dword [esi + 0x18], edi
mov dword [esi + 0x498], 0x23
mov dword [esi + 0xf8], eax
movzx eax, byte [esi + 0x50]
mov byte [esi + 0xfc], al
movzx eax, word [esi + 0x1b8]
mov word [esi + 0xfd], ax
movzx eax, byte [esi + 0x1ba]
mov byte [esi + 0xff], al
mov eax, dword [esi + 0xd0]
mov dword [esi + 0x100], eax
movzx eax, byte [esi + 0xc0]
mov byte [esi + 0x104], al
movzx eax, word [esi + 0x290]
mov byte [esi + 0x107], dl
lea edx, [esi + 0xf8]
mov word [esi + 0x105], ax
mov dword [esi + 0x108], ecx
mov ecx, ebx
mov dword [esi + 0x10c], edi
mov dword [esi + 0x110], edi
call fcn.00527fc0
cmp dword [esi + 0x18], 0
je 0x5426ca
push dword [esi + 0x10]
push 0
push dword [0x919820]
call dword [sym.imp.kernel32.dll_HeapFree]
mov ecx, dword [esi + 0x14]
xor edx, edx
mov al, 1
lock cmpxchg byte [ecx], dl
je 0x5426ea
mov byte [esi + 0xf], 1
mov dword [esi + 0x498], 9
call fcn.0071ade0
mov eax, dword [esi + 0x40]
mov edi, dword [eax]
mov eax, dword [edi + 8]
lea ecx, [edi + 8]
mov dword [esi + 0x10], ecx
test al, 8
jne 0x542709
mov edx, eax
add edx, 0x10
jb 0x542709
lock cmpxchg dword [ecx], edx
je 0x542722
mov byte [esi + 0xf], 1
mov dword [esi + 0x498], 9
mov dword [esi + 0x14], edi
call fcn.00719890
mov edi, dword [esi + 0x14]
mov eax, dword [edi + 0x368]
mov edx, dword [edi + 0x360]
mov dword [esi + 0x498], 0x17
lea ecx, [esi + 0x290]
push eax
call fcn.005299d0
add esp, 4
mov ecx, dword [esi + 0x10]
mov eax, 0xfffffff0
lock xadd dword [ecx], eax
and eax, 0xfffffff2
cmp eax, 0x12
jne 0x54276e
mov byte [esi + 0xf], 1
mov dword [esi + 0x498], 9
call fcn.00719c10
mov eax, dword [esi + 0x298]
mov ecx, dword [esi + 0x290]
mov dword [esi + 0xd0], 0
shl eax, 5
mov dword [esi + 0x48], ecx
add eax, ecx
mov dword [esi + 0x160], eax
mov dword [esi + 0x44], eax
jmp 0x542840
mov ebx, dword [esi + 0x48]
cmp ebx, dword [esi + 0x160]
je 0x54471c
lea eax, [ebx + 0x20]
mov dword [esi + 0x48], eax
movzx eax, byte [ebx]
cmp eax, 0xc
ja 0x542840
mov eax, dword [eax*4 + 0x54782c]
add eax, dword [esi + 0x190]
jmp eax
movsd xmm2, qword [esi + 0x90]
movsd xmm1, qword [esi + 0x88]
movq xmm0, qword [esi + 0x98]
mov dl, 1
xor eax, eax
movsd qword [esi + 0x240], xmm2
movsd qword [esi + 0x238], xmm1
movsd xmm2, qword [esi + 0x80]
movsd xmm1, qword [esi + 0x78]
movq qword [esi + 0x248], xmm0
movsd qword [esi + 0x230], xmm2
movsd qword [esi + 0x228], xmm1
movsd xmm2, qword [esi + 0x68]
movsd xmm1, qword [esi + 0x70]
movsd qword [esi + 0x220], xmm1
movsd qword [esi + 0x218], xmm2
mov byte [esi + 0x214], 2
mov edi, dword [esi + 0x250]
mov dword [esi + 0x18], edi
lea ecx, [edi + 8]
lock cmpxchg byte [edi + 8], dl
mov dword [esi + 0x14], ecx
je 0x5447b3
mov dword [esi + 0x498], 0x18
call fcn.0071aab0
mov eax, dword [esi + 0x40]
mov edi, dword [eax]
mov eax, dword [edi + 8]
lea ecx, [edi + 8]
test al, 8
jne 0x5447cf
mov edx, eax
add edx, 0x10
jb 0x5447cf
lock cmpxchg dword [ecx], edx
je 0x5447ea
mov dword [esi + 0x498], 0x20
mov dword [esi + 0x10], ecx
mov dword [esi + 0x30], edi
call fcn.00719890
mov edi, dword [esi + 0x30]
mov ecx, dword [esi + 0x10]
movq xmm0, qword [edi + 0x358]
mov eax, 0xfffffff0
movq qword [esi + 0x30], xmm0
lock xadd dword [edi + 8], eax
mov dword [esi + 0x498], 0x20
and eax, 0xfffffff2
cmp eax, 0x12
jne 0x544818
call fcn.00719c10
mov eax, dword [esi + 0x70]
mov dword [esi + 0x50], eax
movzx eax, byte [esi + 0x74]
mov byte [esi + 0x180], al
mov eax, dword [esi + 0x8c]
mov dword [esi + 0xc0], eax
movzx eax, byte [esi + 0x90]
mov byte [esi + 0xa0], al
push dword [esi + 0x20]
call dword [esi + 0x15c]
add esp, 4
mov edi, eax
test edx, edx
je 0x5448a8
test edx, edx
setns al
js 0x54708c
mov byte [esi + 0x10], al
movzx eax, byte [0x919aa5]
mov eax, dword [0x919820]
test eax, eax
jne 0x544884
mov ebx, edx
call dword [sym.imp.kernel32.dll_GetProcessHeap]
mov edx, ebx
test eax, eax
je 0x544896
mov dword [0x919820], eax
push edx
push 0
push eax
mov ebx, edx
call dword [sym.imp.kernel32.dll_HeapAlloc]
mov edx, ebx
test eax, eax
jne 0x5448ad
movzx eax, byte [esi + 0x10]
xor ecx, ecx
mov cl, al
call fcn.00709d20
jmp 0x547145
mov eax, 1
mov ebx, dword [esi + 0x18]
mov dword [esi + 0x10], eax
add ebx, 0x10
push edx
push edi
push eax
mov edi, edx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 0x50]
movzx edx, byte [esi + 0x16e]
mov ecx, dword [esi + 0x10]
movq xmm0, qword [esi + 0x30]
mov dword [esi + 0x18], edi
mov dword [esi + 0x498], 0x21
mov dword [esi + 0xf8], eax
movzx eax, byte [esi + 0x180]
mov byte [esi + 0xfc], al
movzx eax, word [esi + 0x1b8]
mov word [esi + 0xfd], ax
movzx eax, byte [esi + 0x1ba]
mov byte [esi + 0xff], al
mov eax, dword [esi + 0xc0]
mov dword [esi + 0x100], eax
movzx eax, byte [esi + 0xa0]
mov byte [esi + 0x104], al
movzx eax, word [esi + 0x16c]
mov byte [esi + 0x107], dl
lea edx, [esi + 0xf8]
mov word [esi + 0x105], ax
mov dword [esi + 0x108], ecx
mov ecx, ebx
mov dword [esi + 0x10c], edi
mov dword [esi + 0x110], edi
call fcn.00527fc0
cmp dword [esi + 0x18], 0
je 0x544973
push dword [esi + 0x10]
push 0
push dword [0x919820]
call dword [sym.imp.kernel32.dll_HeapFree]
mov ecx, dword [esi + 0x14]
xor edx, edx
mov al, 1
lock cmpxchg byte [ecx], dl
je 0x54498f
mov dword [esi + 0x498], 0x18
call fcn.0071ade0
mov eax, dword [esi + 0x68]
lea ecx, [esi + 0x84]
mov dh, byte [esi + 0x90]
mov dl, byte [esi + 0x9c]
movsd xmm0, qword [esi + 0x84]
mov edi, dword [esi + 0x298]
movzx ebx, byte [ecx + 0x1b]
mov dword [esi + 0x48], eax
movzx eax, byte [esi + 0x74]
mov byte [esi + 0x28], dh
mov byte [esi + 0x30], dl
mov edx, dword [esi + 0x70]
movsd qword [esi + 0x1b8], xmm0
movsd xmm0, qword [esi + 0x91]
test edi, edi
mov byte [esi + 0x17a], bl
mov byte [esi + 0x160], al
movzx eax, word [esi + 0x75]
mov dword [esi + 0x180], edx
mov edx, dword [esi + 0x7c]
mov word [esi + 0x16c], ax
movzx eax, byte [esi + 0x77]
mov dword [esi + 0x14], edx
mov byte [esi + 0x16e], al
movzx eax, byte [esi + 0x80]
mov byte [esi + 0xa0], al
movzx eax, word [esi + 0x81]
mov word [esi + 0x17c], ax
movzx eax, byte [esi + 0x83]
mov byte [esi + 0x17e], al
mov eax, dword [esi + 0x98]
mov dword [esi + 0xff], eax
movzx eax, word [ecx + 0x19]
mov ecx, dword [esi + 0x6c]
movsd qword [esi + 0xf8], xmm0
mov dword [esi + 0x44], ecx
mov ecx, dword [esi + 0x78]
mov word [esi + 0x178], ax
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x8c]
mov dword [esi + 0x24], ecx
je 0x544aa9
mov ebx, dword [esi + 0x290]
add ebx, 8
jmp 0x544a76
add ebx, 0x20
dec edi
je 0x544aa9
movzx eax, byte [ebx - 8]
add eax, 0xfffffffe
cmp eax, 0xa
ja 0x544a70
mov eax, dword [eax*4 + 0x54795c]
add eax, dword [esi + 0x190]
jmp eax
cmp dword [esi + 0x294], 0
je 0x544ac6
push dword [esi + 0x290]
push 0
push dword [0x919820]
call dword [sym.imp.kernel32.dll_HeapFree]
movzx eax, word [esi + 0x16c]
mov ecx, dword [esi + 0x1bc]
cmp byte [esi + 0xd0], 0
mov dh, byte [esi + 0x17e]
mov ebx, dword [esi + 0x1b8]
movsd xmm0, qword [esi + 0xf8]
mov dl, byte [esi + 0x17a]
mov edi, dword [esi + 0xff]
mov word [esi + 0x288], ax
movzx eax, byte [esi + 0x16e]
mov dword [esi + 0x38c], ecx
movzx ecx, word [esi + 0x178]
movsd qword [esi + 0x3e0], xmm0
mov byte [esi + 0x286], dh
mov dword [esi + 0x388], ebx
mov dword [esi + 0x3e7], edi
mov byte [esi + 0x282], dl
mov byte [esi + 0x28a], al
movzx eax, word [esi + 0x17c]
mov word [esi + 0x280], cx
mov word [esi + 0x284], ax
je 0x544b59
mov byte [esi + 0x320], 1
movzx eax, byte [esi + 0x28a]
mov ecx, dword [esi + 0x38c]
mov ebx, dword [esi + 0x388]
movsd xmm0, qword [esi + 0x3e0]
movzx edx, word [esi + 0x280]
mov edi, dword [esi + 0x3e7]
mov byte [esi + 0x17e], al
movzx eax, word [esi + 0x288]
mov dword [esi + 0x2b4], ecx
movzx ecx, byte [esi + 0x282]
movsd qword [esi + 0x290], xmm0
mov dword [esi + 0x2b0], ebx
mov dword [esi + 0x297], edi
mov word [esi + 0x27c], dx
mov word [esi + 0x17c], ax
movzx eax, word [esi + 0x284]
mov byte [esi + 0x27e], cl
mov word [esi + 0x178], ax
movzx eax, byte [esi + 0x286]
mov byte [esi + 0x17a], al
mov edx, dword [esi + 0x3a0]
mov ecx, dword [esi + 0xb8]
movss xmm0, dword [esi + 0x2e8]
movss xmm3, dword [esi + 0x2f0]
movss xmm2, dword [ecx + 0x20]
movss xmm1, dword [ecx + 0x24]
subss xmm2, dword [ecx + 0x18]
subss xmm1, dword [ecx + 0x1c]
ucomiss xmm2, dword [0x7258a0]
jb 0x544c2a
movaps xmm4, xmm3
subss xmm4, xmm0
ucomiss xmm4, dword [0x7258a0]
movaps xmm4, xmm0
jae 0x544c67
test dl, dl
movaps xmm4, xmm0
je 0x544c67
movzx eax, dl
cmp eax, 1
jne 0x544c60
ucomiss xmm2, dword [0x7258a0]
jb 0x544c4c
movss xmm4, dword [0x725908]
jmp 0x544c67
movss xmm4, dword [0x725640]
addss xmm3, xmm0
mulss xmm3, xmm4
mulss xmm2, xmm4
subss xmm3, xmm2
movaps xmm4, xmm3
movss xmm5, dword [esi + 0x2ec]
movss xmm2, dword [esi + 0x2f4]
ucomiss xmm1, dword [0x7258a0]
jb 0x544c93
movaps xmm3, xmm2
movaps xmm6, xmm5
subss xmm3, xmm5
ucomiss xmm3, dword [0x7258a0]
jae 0x544cd0
test dh, dh
movaps xmm6, xmm5
je 0x544cd0
movzx eax, dh
cmp eax, 1
jne 0x544cc9
ucomiss xmm1, dword [0x7258a0]
jb 0x544cb5
movss xmm6, dword [0x725908]
jmp 0x544cd0
movss xmm3, dword [0x725640]
addss xmm2, xmm5
mulss xmm2, xmm3
mulss xmm1, xmm3
subss xmm2, xmm1
movaps xmm6, xmm2
movaps xmm1, xmm0
cmp byte [esi + 0x28c], 0
maxss xmm1, xmm4
cmpunordss xmm4, xmm4
movaps xmm2, xmm4
andnps xmm4, xmm1
andps xmm2, xmm0
orps xmm4, xmm2
subss xmm0, xmm4
je 0x544ed3
xorps xmm1, xmm1
ucomiss xmm0, xmm1
jne 0x544ed3
jp 0x544ed3
mov eax, dword [esi + 0x40]
movss dword [esi + 0x2c], xmm6
movaps xmmword [esi + 0x50], xmm5
movaps xmmword [esi + 0xd0], xmm4
mov edi, dword [eax]
mov eax, dword [edi + 8]
lea ecx, [edi + 8]
test al, 8
jne 0x544d37
mov edx, eax
add edx, 0x10
jb 0x544d37
lock cmpxchg dword [ecx], edx
je 0x544d5c
mov byte [esi + 0xf], 1
mov dword [esi + 0x498], 9
mov dword [esi + 0x10], ecx
mov dword [esi + 0xc0], edi
call fcn.00719890
mov edi, dword [esi + 0xc0]
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 0x1a8]
mov edx, dword [esi + 0x1ac]
mov ebx, dword [edi + 0x3c]
mov dword [esi + 0x190], eax
mov eax, dword [edi + 0x30]
mov dword [esi + 0x10], eax
mov eax, dword [edi + 0x34]
mov dword [esi + 0xc0], eax
mov eax, dword [edi + 0x38]
mov dword [esi + 0x260], eax
mov eax, 0xfffffff0
lock xadd dword [edi + 8], eax
and eax, 0xfffffff2
cmp eax, 0x12
jne 0x544dc6
mov byte [esi + 0xf], 1
mov dword [esi + 0x498], 9
mov dword [esi + 0xb4], edx
mov dword [esi + 0x168], ebx
call fcn.00719c10
mov ebx, dword [esi + 0x168]
mov edx, dword [esi + 0xb4]
cmp byte [esi + 0x30], 2
xorps xmm0, xmm0
je 0x544ee3
mov eax, dword [esi + 0xc0]
movaps xmm4, xmmword [esi + 0xd0]
or dword [esi + 0x10], eax
je 0x544eea
mov eax, dword [esi + 0x260]
movaps xmm5, xmmword [esi + 0x50]
movss xmm6, dword [esi + 0x2c]
xor ebx, edx
xor eax, dword [esi + 0x190]
or ebx, eax
jne 0x544ef3
mov eax, dword [esi + 0xb8]
mov edx, dword [eax + 0x14]
test edx, edx
je 0x544ef3
mov ecx, dword [eax + 0xc]
mov dword [esi + 0x190], edx
mov dword [esi + 0x10], 0
mov eax, ecx
mov eax, edx
mov dword [esi + 0x260], ecx
add ecx, 0x48
xor edx, edx
shl eax, 5
lea edi, [eax + eax*2]
jmp 0x544e4b
add edx, dword [ecx + 0x10]
add ecx, 0x60
add edi, 0xffffffa0
je 0x544ea6
mov eax, dword [esi + 0x10]
cmp eax, dword [esi + 0x18]
jne 0x544e93
mov eax, dword [esi + 0x14]
sub eax, edx
jb 0x544e93
mov ebx, dword [ecx + 0x10]
mov dword [esi + 0xc0], ebx
add ebx, edx
cmp dword [esi + 0x14], ebx
jbe 0x544e70
cmp byte [ecx + 0x14], 0
je 0x544e93
cmp byte [esi + 0xa0], 0
je 0x544f15
cmp byte [ecx + 0x14], 0
jne 0x544f15
cmp eax, dword [esi + 0xc0]
jb 0x544f15
cmp byte [ecx + 0x14], 0
je 0x544e40
inc dword [esi + 0x10]
xor edx, edx
add ecx, 0x60
add edi, 0xffffffa0
jne 0x544e4b
mov eax, dword [esi + 0x190]
test eax, eax
je 0x544ef3
mov ecx, dword [esi + 0x260]
lea eax, [eax + eax*2]
shl eax, 5
lea eax, [eax + ecx - 0x18]
movss xmm0, dword [eax]
movss xmm1, dword [esi + 0x254]
ucomiss xmm0, xmm1
jae 0x544f00
jmp 0x544f3f
mov edi, dword [ebp + 8]
movss dword [esi + 0x254], xmm0
jmp 0x544f95
movaps xmm4, xmmword [esi + 0xd0]
movaps xmm5, xmmword [esi + 0x50]
movss xmm6, dword [esi + 0x2c]
movss xmm1, dword [esi + 0x254]
ucomiss xmm0, xmm1
jb 0x544f3f
movaps xmm2, xmmword [esi + 0x390]
addss xmm2, xmm1
ucomiss xmm2, xmm0
jb 0x544f3f
mov edi, dword [ebp + 8]
jmp 0x544f52
imul edx, eax, 0x34
xor edi, edi
add edx, dword [ecx + 8]
cmp dword [esi + 0xc0], eax
cmova edi, edx
test edi, edi
lea eax, [edi + 4]
cmove eax, ecx
movss xmm0, dword [eax]
movss xmm1, dword [esi + 0x254]
ucomiss xmm0, xmm1
jae 0x544f00
mov edi, dword [ebp + 8]
ucomiss xmm1, xmm0
ja 0x544f4f
subss xmm0, dword [esi + 0x390]
movaps xmm1, xmm0
mov ecx, dword [esi + 0xb8]
movaps xmm2, xmm1
cmpunordss xmm2, xmm1
movaps xmm3, xmm2
movss xmm0, dword [ecx + 0x20]
subss xmm0, dword [ecx + 0x18]
subss xmm0, dword [esi + 0x390]
andps xmm3, xmm0
minss xmm0, xmm1
andnps xmm2, xmm0
xorps xmm0, xmm0
orps xmm2, xmm3
maxss xmm2, xmm0
movss dword [esi + 0x254], xmm2
subss xmm4, xmm2
movaps xmm1, xmm6
xor eax, eax
cmp byte [esi + 0x30], 2
cmpunordss xmm1, xmm6
movaps xmm0, xmm1
andps xmm0, xmm5
maxss xmm5, xmm6
andnps xmm1, xmm5
orps xmm1, xmm0
movaps xmmword [esi + 0xc0], xmm1
je 0x544fe8
cmp byte [esi + 0x484], 2
movaps xmm1, xmmword [esi + 0x2c0]
je 0x544fef
mov eax, dword [esi + 0x458]
mov edx, dword [esi + 0x474]
xor eax, dword [esi + 0x180]
xor edx, dword [esi + 0x24]
or edx, eax
setne al
jmp 0x544fef
movaps xmm1, xmmword [esi + 0x2c0]
cmp byte [edi + 0xe4], 0
mov dword [esi + 0x2c], eax
mov al, 1
movaps xmmword [esi + 0xd0], xmm4
mov dword [esi + 0x10], eax
je 0x545043
cmp dword [edi + 0xe5], 0
jne 0x545043
movzx eax, byte [esi + 0x24c]
cmp al, 2
jne 0x54510a
movzx ecx, byte [esi + 0x214]
cmp cl, 2
jne 0x5451a1
mov edx, dword [esi + 0x250]
lock inc dword [edx]
jg 0x5451c5
jmp 0x546fc8
movss xmm0, dword [edi + 0xd8]
ucomiss xmm0, xmm1
jb 0x545010
movsd xmm0, qword [edi + 0xd0]
cmpnleps xmm0, xmmword [esi + 0x420]
unpcklps xmm0, xmm0
movmskpd eax, xmm0
test al, 1
jne 0x545010
movss xmm0, dword [edi + 0xdc]
shufps xmm1, xmm1, 0x55
ucomiss xmm0, xmm1
jb 0x545010
shr al, 1
jne 0x545010
lock inc dword [ecx]
jle 0x546fc8
mov eax, dword [ecx + 8]
movaps xmmword [esi + 0x3a0], xmm1
cmp dword [eax + 0x2c], 0
je 0x5455ba
movaps xmm0, xmmword [esi + 0xc0]
mov dword [esi + 0xf8], ecx
lea ecx, [esi + 0x3b0]
lea edx, [esi + 0xf8]
movss dword [esi + 0xfc], xmm4
mov byte [esi + 0xf], 1
mov dword [esi + 0x498], 9
movss dword [esi + 0x100], xmm0
mov dword [esi + 0x108], 0
mov dword [esi + 0x104], 0
mov dword [esi + 0x10c], 0
mov byte [esi + 0x110], 0
mov byte [esi + 0x124], 8
call fcn.005606f0
jmp 0x5455d2
mov ecx, dword [esi + 0x248]
movsd xmm1, qword [esi + 0x238]
movsd xmm2, qword [esi + 0x230]
movsd xmm0, qword [esi + 0x240]
mov dword [esi + 0x1e8], ecx
movsd qword [esi + 0x1d8], xmm1
movsd xmm1, qword [esi + 0x228]
movzx ecx, word [esi + 0x24d]
movsd qword [esi + 0x1d0], xmm2
movsd xmm2, qword [esi + 0x218]
movsd qword [esi + 0x1e0], xmm0
movsd qword [esi + 0x1c8], xmm1
movsd xmm1, qword [esi + 0x220]
mov word [esi + 0x16c], cx
movzx ecx, byte [esi + 0x24f]
movsd qword [esi + 0x1b8], xmm2
movsd qword [esi + 0x1c0], xmm1
mov byte [esi + 0x16e], cl
movzx ecx, byte [esi + 0x214]
cmp cl, 2
je 0x54502f
movzx edx, byte [esi + 0x217]
movzx edi, word [esi + 0x215]
mov byte [esi + 0x6a], dl
mov word [esi + 0x68], di
mov edx, dword [esi + 0x250]
lock inc dword [edx]
jle 0x546fc8
movsd xmm0, qword [esi + 0x1b8]
mov edi, dword [esi + 0x1e8]
movq xmm1, qword [esi + 0x1c0]
mov dword [esi + 0x498], 9
movsd qword [esi + 0x108], xmm0
movsd xmm0, qword [esi + 0x1c8]
mov dword [esi + 0x138], edi
movq qword [esi + 0x110], xmm1
mov edi, dword [esi + 0x1ac]
movsd qword [esi + 0x118], xmm0
movsd xmm0, qword [esi + 0x1d0]
movsd qword [esi + 0x120], xmm0
movsd xmm0, qword [esi + 0x1d8]
movsd qword [esi + 0x128], xmm0
movsd xmm0, qword [esi + 0x1e0]
movsd qword [esi + 0x130], xmm0
mov byte [esi + 0x13c], al
movzx eax, byte [esi + 0x16e]
movsd xmm0, qword [esi + 0x208]
mov byte [esi + 0x13f], al
movzx eax, word [esi + 0x16c]
mov word [esi + 0x13d], ax
mov eax, dword [esi + 0x210]
movsd qword [esi + 0xf8], xmm0
movd xmm0, dword [esi + 0x254]
mov dword [esi + 0x100], eax
mov byte [esi + 0x104], cl
movzx ecx, byte [esi + 0x6a]
movzx eax, word [esi + 0x68]
mov byte [esi + 0x107], cl
mov ecx, dword [esi + 0x40]
mov word [esi + 0x105], ax
movzx eax, byte [esi + 0x258]
mov dword [esi + 0x140], edx
mov edx, dword [ecx]
mov ecx, dword [esi + 0x10]
mov byte [esi + 0x148], al
mov eax, dword [esi + 0x1a8]
movd dword [esi + 0x144], xmm0
mov byte [esi + 0xf], cl
lea ecx, [esi + 0xf8]
push edi
push eax
call fcn.0055c090
add esp, 8
cmp byte [esi + 0x320], 0
je 0x545394
cmp byte [esi + 0x30e], 0
je 0x545463
mov eax, dword [esi + 0x10]
movzx edx, byte [esi + 0x1f]
lea ecx, [esi + 0x68]
mov byte [esi + 0xf], al
mov dword [esi + 0x50], edx
push dword [esi + 0x150]
push dword [esi + 0x164]
call fcn.00549110
add esp, 8
mov byte [esi + 0xed], 1
mov dword [esi + 0x498], 0x15
push dword [esi + 0x20]
mov eax, dword [esi + 0x3c]
call dword [eax + 0x10]
add esp, 4
mov edi, edx
mov edx, dword [esi + 0x50]
mov byte [esi + 0xed], 1
lea ecx, [esi + 0x1b8]
push edi
push eax
call fcn.00549110
add esp, 8
lea eax, [esi + 0x1b8]
mov byte [esi + 0xed], 0
lea ecx, [esi + 0xf8]
lea edx, [esi + 0x68]
push eax
call fcn.0055ecc0
add esp, 4
push 0x48
lea eax, [esi + 0xf8]
push eax
lea eax, [esi + 0x1b8]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
xor edi, edi
xor ebx, ebx
jmp 0x546593
cmp byte [esi + 0x2c], 0
je 0x545510
cmp byte [esi + 0x30], 2
je 0x547096
mov eax, dword [esi + 0x10]
mov byte [esi + 0xf], al
push dword [esi + 0x20]
call dword [esi + 0x15c]
add esp, 4
cmp byte [esi + 0x1f], 0
mov ebx, eax
mov edi, edx
je 0x545782
cmp edi, 0x10
jae 0x5457dd
test edi, edi
je 0x545bab
xor ecx, ecx
cmp edi, 8
mov eax, 0
jb 0x545443
movd xmm0, dword [ebx + 4]
movdqa xmm1, xmmword [0x725820]
movd xmm3, dword [ebx]
movdqa xmm2, xmmword [0x7257a0]
mov ecx, 8
pcmpgtb xmm0, xmm1
pcmpgtb xmm3, xmm1
punpcklbw xmm0, xmm0
punpcklwd xmm0, xmm0
pand xmm0, xmm2
punpcklbw xmm3, xmm3
punpcklwd xmm3, xmm3
pand xmm3, xmm2
paddd xmm3, xmm0
pshufd xmm0, xmm3, 0xee
paddd xmm0, xmm3
pshufd xmm1, xmm0, 0x55
paddd xmm1, xmm0
movd eax, xmm1
je 0x5457e6
sub edi, ecx
add ebx, ecx
nop word [eax + eax]
xor ecx, ecx
cmp byte [ebx], 0xc0
setge cl
inc ebx
add eax, ecx
dec edi
jne 0x545450
jmp 0x5457e6
cmp byte [esi + 0x313], 0
je 0x545628
mov eax, dword [esi + 0x10]
movzx edx, byte [esi + 0x1f]
lea ecx, [esi + 0x68]
mov byte [esi + 0xf], al
mov dword [esi + 0x50], edx
push dword [esi + 0x150]
push dword [esi + 0x164]
call fcn.00549110
add esp, 8
mov byte [esi + 0xee], 1
mov dword [esi + 0x498], 0x14
push dword [esi + 0x20]
mov eax, dword [esi + 0x3c]
call dword [eax + 0x10]
add esp, 4
mov edi, edx
mov edx, dword [esi + 0x50]
mov byte [esi + 0xee], 1
lea ecx, [esi + 0x1b8]
push edi
push eax
call fcn.00549110
add esp, 8
lea eax, [esi + 0x1b8]
mov byte [esi + 0xee], 0
lea ecx, [esi + 0xf8]
lea edx, [esi + 0x68]
push eax
call fcn.0055ecc0
add esp, 4
push 0x48
lea eax, [esi + 0xf8]
push eax
lea eax, [esi + 0x1b8]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
xor ebx, ebx
mov edi, 1
jmp 0x546593
cmp byte [esi + 0x30e], 0
je 0x5456d5
mov eax, dword [esi + 0x10]
movzx edx, byte [esi + 0x1f]
lea ecx, [esi + 0x68]
mov byte [esi + 0xf], al
mov dword [esi + 0x50], edx
push dword [esi + 0x150]
push dword [esi + 0x164]
call fcn.00549110
add esp, 8
mov byte [esi + 0xf2], 1
mov dword [esi + 0x498], 0x10
push dword [esi + 0x20]
mov eax, dword [esi + 0x3c]
call dword [eax + 0x10]
add esp, 4
mov edi, edx
mov edx, dword [esi + 0x50]
mov byte [esi + 0xf2], 1
lea ecx, [esi + 0x1b8]
push edi
push eax
call fcn.00549110
add esp, 8
lea eax, [esi + 0x1b8]
mov byte [esi + 0xf2], 0
lea ecx, [esi + 0xf8]
lea edx, [esi + 0x68]
push eax
call fcn.0055ecc0
add esp, 4
push 0x48
lea eax, [esi + 0xf8]
push eax
lea eax, [esi + 0x1b8]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
xor edi, edi
xor ebx, ebx
jmp 0x546a58
lock dec dword [ecx]
mov dword [esi + 0x498], 9
jne 0x5455d2
mov byte [esi + 0xf], 1
call fcn.00563190
mov byte [esi + 0xf], 1
push dword [esi + 0x20]
call dword [esi + 0x15c]
add esp, 4
mov al, 1
test edx, edx
mov dword [esi + 0x10], eax
je 0x5455f3
mov ecx, dword [esi + 0x40]
jmp 0x545f31
mov ecx, dword [esi + 0x348]
xor eax, eax
lea edx, [ecx - 1]
cmp ecx, 2
cmovae eax, edx
test eax, eax
je 0x545611
cmp eax, 1
jne 0x5459eb
lea eax, [esi + 0x370]
mov ecx, dword [esi + 0x40]
cmp dword [eax], 0
jne 0x545a03
jmp 0x545f31
cmp byte [esi + 0x318], 0
je 0x545896
mov eax, dword [esi + 0x10]
movzx edx, byte [esi + 0x1f]
lea ecx, [esi + 0x68]
mov byte [esi + 0xf], al
mov dword [esi + 0x50], edx
push dword [esi + 0x150]
push dword [esi + 0x164]
call fcn.00549110
add esp, 8
mov byte [esi + 0xef], 1
mov dword [esi + 0x498], 0x13
push dword [esi + 0x20]
mov eax, dword [esi + 0x3c]
call dword [eax + 0x10]
add esp, 4
mov edi, edx
mov edx, dword [esi + 0x50]
mov byte [esi + 0xef], 1
lea ecx, [esi + 0x1b8]
push edi
push eax
call fcn.00549110
add esp, 8
lea eax, [esi + 0x1b8]
mov byte [esi + 0xef], 0
lea ecx, [esi + 0xf8]
lea edx, [esi + 0x68]
push eax
call fcn.0055ecc0
add esp, 4
push 0x48
lea eax, [esi + 0xf8]
push eax
lea eax, [esi + 0x1b8]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
xor ebx, ebx
mov edi, 2
jmp 0x546593
cmp byte [esi + 0x313], 0
je 0x545ab5
mov eax, dword [esi + 0x10]
movzx edx, byte [esi + 0x1f]
lea ecx, [esi + 0x68]
mov byte [esi + 0xf], al
mov dword [esi + 0x50], edx
push dword [esi + 0x150]
push dword [esi + 0x164]
call fcn.00549110
add esp, 8
mov byte [esi + 0xf3], 1
mov dword [esi + 0x498], 0xf
push dword [esi + 0x20]
mov eax, dword [esi + 0x3c]
call dword [eax + 0x10]
add esp, 4
mov edi, edx
mov edx, dword [esi + 0x50]
mov byte [esi + 0xf3], 1
lea ecx, [esi + 0x1b8]
push edi
push eax
call fcn.00549110
add esp, 8
lea eax, [esi + 0x1b8]
mov byte [esi + 0xf3], 0
lea ecx, [esi + 0xf8]
lea edx, [esi + 0x68]
push eax
call fcn.0055ecc0
add esp, 4
push 0x48
lea eax, [esi + 0xf8]
push eax
lea eax, [esi + 0x1b8]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
xor ebx, ebx
mov edi, 1
jmp 0x546a58
test edi, edi
je 0x545b62
setns al
js 0x5470e1
mov byte [esi + 0x50], al
movzx eax, byte [0x919aa5]
mov eax, dword [0x919820]
test eax, eax
jne 0x5457b5
call dword [sym.imp.kernel32.dll_GetProcessHeap]
test eax, eax
je 0x5457c7
mov dword [0x919820], eax
push edi
push 0
push eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
test eax, eax
jne 0x545b67
mov eax, dword [esi + 0x10]
movzx ecx, byte [esi + 0x50]
mov edx, edi
mov byte [esi + 0xf], al
call fcn.00709d20
jmp 0x547145
mov ecx, ebx
mov edx, edi
call fcn.004266c0
test eax, eax
mov dword [esi + 0xf8], 1
mov dword [esi + 0xfc], 0
mov dword [esi + 0x100], 0
je 0x545bc9
mov dword [esi + 0x498], 0xb
lea ecx, [esi + 0xf8]
xor edx, edx
mov dword [esi + 0x50], eax
push eax
call fcn.00720870
add esp, 4
mov edx, dword [esi + 0x100]
mov ecx, dword [esi + 0x50]
jmp 0x545861
mov eax, dword [esi + 0xf8]
mov word [eax + edx], 0x80e2
mov byte [eax + edx + 2], 0xa2
add edx, 3
dec ecx
mov dword [esi + 0x100], edx
je 0x545bc9
mov eax, dword [esi + 0xfc]
sub eax, edx
cmp eax, 2
ja 0x545840
mov dword [esi + 0x50], ecx
mov dword [esi + 0x498], 0xb
lea ecx, [esi + 0xf8]
push 3
call fcn.00720870
add esp, 4
mov edx, dword [esi + 0x100]
mov ecx, dword [esi + 0x50]
jmp 0x545840
mov ecx, dword [esi + 0x304]
lea eax, [ecx + 8]
mov dword [esi + 0x2c], ecx
mov dword [esi + 0x50], eax
mov eax, dword [ecx + 8]
test al, 8
jne 0x5458bc
mov ecx, eax
add ecx, 0x10
jb 0x5458bc
mov edx, dword [esi + 0x50]
lock cmpxchg dword [edx], ecx
je 0x5458ca
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x50]
mov byte [esi + 0xf], al
call fcn.00719890
mov eax, dword [esi + 0x2c]
mov ebx, dword [esi + 0x2e4]
mov ecx, dword [esi + 0x2e0]
mov edx, dword [eax + 0x40]
mov edi, dword [eax + 0x4c]
mov dword [esi + 0x40], ebx
mov dword [esi + 0x190], ecx
or edx, dword [eax + 0x44]
setne dl
xor edi, ebx
mov ebx, dword [eax + 0x48]
xor ebx, ecx
or ebx, edi
sete dh
xor ebx, ebx
test dl, dh
jne 0x54591c
mov edx, dword [eax + 0x34]
or edx, dword [eax + 0x30]
je 0x54591c
mov ecx, dword [esi + 0x190]
mov edx, dword [esi + 0x40]
xor ecx, dword [eax + 0x38]
xor edx, dword [eax + 0x3c]
or edx, ecx
sete bl
mov ecx, dword [esi + 0x50]
mov dword [esi + 0x2c], ebx
mov eax, 0xfffffff0
lock xadd dword [ecx], eax
and eax, 0xfffffff2
cmp eax, 0x12
jne 0x545941
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x50]
mov byte [esi + 0xf], al
call fcn.00719c10
cmp byte [esi + 0x2c], 0
je 0x5464eb
mov eax, dword [esi + 0x10]
movzx edx, byte [esi + 0x1f]
lea ecx, [esi + 0x68]
mov byte [esi + 0xf], al
mov dword [esi + 0x50], edx
push dword [esi + 0x150]
push dword [esi + 0x164]
call fcn.00549110
add esp, 8
mov byte [esi + 0xf0], 1
mov dword [esi + 0x498], 0x12
push dword [esi + 0x20]
mov eax, dword [esi + 0x3c]
call dword [eax + 0x10]
add esp, 4
mov edi, edx
mov edx, dword [esi + 0x50]
mov byte [esi + 0xf0], 1
lea ecx, [esi + 0x1b8]
push edi
push eax
call fcn.00549110
add esp, 8
lea eax, [esi + 0x1b8]
mov byte [esi + 0xf0], 0
lea ecx, [esi + 0xf8]
lea edx, [esi + 0x68]
push eax
call fcn.0055ecc0
add esp, 4
push 0x48
lea eax, [esi + 0xf8]
push eax
lea eax, [esi + 0x1b8]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
xor ebx, ebx
mov edi, 3
jmp 0x546593
mov eax, dword [esi + 0x34c]
mov eax, dword [eax + 8]
add eax, 0x2c
mov ecx, dword [esi + 0x40]
cmp dword [eax], 0
je 0x545f31
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x100]
test byte [eax + 0x1f8], 1
lea ecx, [eax + 0x1f9]
lea edi, [eax + 0x100]
cmove ecx, edi
mov ebx, dword [ecx]
mov ecx, ebx
mov edi, ebx
shr ecx, 0x10
shr edi, 0x18
mov dword [esi + 0x10], edi
je 0x545b99
mov dword [esi + 0x50], ebx
mov ebx, dword [eax + 0x108]
mov dword [esi + 0x190], ecx
mov ecx, ebx
shr ecx, 0x10
cmp byte [esi + 0x10], 0xaa
jae 0x545d17
mov ax, 0x1fe
xor edx, edx
div word [esi + 0x10]
test al, al
mov word [esi + 0x260], ax
je 0x546fa8
movzx edi, cl
movzx ecx, word [esi + 0x260]
movzx eax, bl
movzx edx, bh
div cl
mov ebx, eax
mov eax, edx
div cl
mov edx, eax
mov eax, edi
div cl
mov ecx, dword [esi + 0x50]
shr cl, 1
add bl, cl
shr ch, 1
add dl, ch
mov ecx, dword [esi + 0x190]
mov bh, dl
mov edx, dword [ebp + 8]
shr cl, 1
add al, cl
mov ecx, dword [esi + 0x10]
shr cl, 1
mov dword [esi + 0x10], ecx
mov ecx, eax
jmp 0x545d38
cmp byte [esi + 0x318], 0
je 0x5465ef
mov eax, dword [esi + 0x10]
movzx edx, byte [esi + 0x1f]
lea ecx, [esi + 0x68]
mov byte [esi + 0xf], al
mov dword [esi + 0x50], edx
push dword [esi + 0x150]
push dword [esi + 0x164]
call fcn.00549110
add esp, 8
mov byte [esi + 0xf4], 1
mov dword [esi + 0x498], 0xe
push dword [esi + 0x20]
mov eax, dword [esi + 0x3c]
call dword [eax + 0x10]
add esp, 4
mov edi, edx
mov edx, dword [esi + 0x50]
mov byte [esi + 0xf4], 1
lea ecx, [esi + 0x1b8]
push edi
push eax
call fcn.00549110
add esp, 8
lea eax, [esi + 0x1b8]
mov byte [esi + 0xf4], 0
lea ecx, [esi + 0xf8]
lea edx, [esi + 0x68]
push eax
call fcn.0055ecc0
add esp, 4
push 0x48
lea eax, [esi + 0xf8]
push eax
lea eax, [esi + 0x1b8]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
xor ebx, ebx
mov edi, 2
jmp 0x546a58
mov eax, 1
push edi
push ebx
push eax
mov ebx, eax
call sub.VCRUNTIME140.dll_memcpy
mov ecx, ebx
add esp, 0xc
mov dword [esi + 0x1b8], ebx
mov dword [esi + 0x1bc], edi
mov dword [esi + 0x1c0], edi
test edi, edi
mov dword [esi + 0x50], ecx
jne 0x545bf2
mov ebx, 1
jmp 0x545c32
shr bl, 1
shr bh, 1
shr cl, 1
mov dword [esi + 0x10], 0
jmp 0x545d38
mov dword [esi + 0xf8], 1
mov dword [esi + 0xfc], 0
mov dword [esi + 0x100], 0
movq xmm0, qword [esi + 0xf8]
mov edi, dword [esi + 0x100]
movq qword [esi + 0x1b8], xmm0
mov dword [esi + 0x1c0], edi
mov ecx, dword [esi + 0x1b8]
test edi, edi
mov dword [esi + 0x50], ecx
je 0x545b8f
js 0x5470d0
movzx eax, byte [0x919aa5]
mov eax, dword [0x919820]
test eax, eax
jne 0x545c1b
call dword [sym.imp.kernel32.dll_GetProcessHeap]
test eax, eax
je 0x5470b8
mov dword [0x919820], eax
push edi
push 0
push eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
mov ecx, dword [esi + 0x50]
mov ebx, eax
test eax, eax
je 0x5470b8
push edi
push ecx
push ebx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
cmp dword [esi + 0x1bc], 0
je 0x545c61
push dword [esi + 0x50]
push 0
push dword [0x919820]
call dword [sym.imp.kernel32.dll_HeapFree]
mov dword [esi + 0x498], 9
movzx eax, byte [esi + 0x6a]
movdqa xmm0, xmmword [0x725540]
mov ecx, dword [esi + 0x304]
lea edx, [esi + 0xf8]
mov dword [esi + 0x498], 9
mov byte [esi + 0x11b], al
movzx eax, word [esi + 0x68]
mov word [esi + 0x119], ax
mov eax, dword [esi + 0x1b8]
mov dword [esi + 0x143], eax
movzx eax, byte [esi + 0x1bc]
mov byte [esi + 0x147], al
mov eax, dword [esi + 0x180]
movdqu xmmword [esi + 0xf8], xmm0
mov dword [esi + 0x110], eax
mov eax, dword [esi + 0x24]
mov dword [esi + 0x114], eax
mov eax, dword [esi + 0x10]
mov byte [esi + 0x118], 0
mov dword [esi + 0x11c], 0
mov dword [esi + 0x128], ebx
mov dword [esi + 0x12c], edi
mov dword [esi + 0x130], edi
mov dword [esi + 0x134], 0
mov word [esi + 0x140], 0x201
mov byte [esi + 0x142], 2
mov byte [esi + 0xf], al
call fcn.005109d0
jmp 0x546a9d
mov eax, dword [esi + 0x50]
shr bl, 1
shr cl, 1
shr al, 1
add bl, al
shr ah, 1
shr bh, 1
add bh, ah
mov eax, dword [esi + 0x190]
shr al, 1
add cl, al
mov eax, ebx
mov ah, bh
mov ebx, eax
cmp byte [esi + 0x25c], 0
mov dword [esi + 0x190], ecx
mov dword [esi + 0x50], ebx
je 0x545e11
movsd xmm0, qword [esi + 0x378]
movsd xmm1, qword [esi + 0x350]
mov eax, dword [esi + 0x380]
mov byte [esi + 0xf], 0
lea ecx, [esi + 0xf8]
movsd qword [esi + 0x128], xmm0
movsd xmm0, qword [esi + 0x370]
movsd qword [esi + 0x100], xmm1
movsd xmm1, qword [esi + 0x2a8]
mov dword [esi + 0x130], eax
lea eax, [esi + 0x1b8]
movsd qword [esi + 0x120], xmm0
movsd xmm0, qword [esi + 0x368]
movsd qword [esi + 0x1c0], xmm1
movsd qword [esi + 0x118], xmm0
movsd xmm0, qword [esi + 0x360]
movsd qword [esi + 0x110], xmm0
movsd xmm0, qword [esi + 0x358]
movsd qword [esi + 0x108], xmm0
movsd xmm0, qword [esi + 0x348]
movsd qword [esi + 0xf8], xmm0
movsd xmm0, qword [esi + 0x2a0]
movsd qword [esi + 0x1b8], xmm0
movaps xmm0, xmmword [esi + 0x390]
push eax
push 1
call fcn.00557e80
add esp, 8
jmp 0x545ed0
movsd xmm0, qword [esi + 0x378]
movsd xmm1, qword [esi + 0x350]
mov eax, dword [esi + 0x380]
mov byte [esi + 0xf], 0
lea ecx, [esi + 0xf8]
movsd qword [esi + 0x128], xmm0
movsd xmm0, qword [esi + 0x370]
movsd qword [esi + 0x100], xmm1
movsd xmm1, qword [esi + 0x2a8]
mov dword [esi + 0x130], eax
lea eax, [esi + 0x1b8]
movsd qword [esi + 0x120], xmm0
movsd xmm0, qword [esi + 0x368]
movsd qword [esi + 0x1c0], xmm1
movsd qword [esi + 0x118], xmm0
movsd xmm0, qword [esi + 0x360]
movsd qword [esi + 0x110], xmm0
movsd xmm0, qword [esi + 0x358]
movsd qword [esi + 0x108], xmm0
movsd xmm0, qword [esi + 0x348]
movsd qword [esi + 0xf8], xmm0
movsd xmm0, qword [esi + 0x2a0]
movsd qword [esi + 0x1b8], xmm0
movss xmm0, dword [0x7258a0]
push eax
push 0
call fcn.00557e80
add esp, 8
movzx ecx, byte [esi + 0x10]
movzx edi, byte [esi + 0x190]
mov ebx, dword [esi + 0x50]
movss xmm1, dword [esi + 0x2ec]
and dl, 1
mov byte [esi + 0xf], 0
movzx edx, dl
shl ecx, 8
or ecx, edi
movzx edi, bl
movzx ebx, bh
shl ebx, 8
or ebx, edi
movd xmm0, ebx
lea ebx, [esi + 0x3b0]
pinsrw xmm0, ecx, 1
mov ecx, eax
movd edi, xmm0
movss xmm0, dword [esi + 0x2e8]
push edi
push ebx
call fcn.00558e60
add esp, 8
mov ecx, dword [esi + 0x40]
mov dword [esi + 0x10], 0
mov eax, dword [ecx]
mov dword [esi + 0x50], eax
lea ecx, [eax + 8]
mov eax, dword [eax + 8]
test al, 8
jne 0x545f4d
mov edx, eax
add edx, 0x10
jb 0x545f4d
lock cmpxchg dword [ecx], edx
je 0x545f64
mov eax, dword [esi + 0x10]
mov dword [esi + 0x190], ecx
mov byte [esi + 0xf], al
call fcn.00719890
mov ecx, dword [esi + 0x190]
mov eax, dword [esi + 0x1a8]
mov edx, dword [esi + 0x50]
mov edi, dword [esi + 0x1ac]
mov dword [esi + 0xb4], eax
mov eax, dword [edx + 0x30]
mov ebx, dword [edx + 0x3c]
mov dword [esi + 0x190], eax
mov eax, dword [edx + 0x34]
mov dword [esi + 0x260], eax
mov eax, dword [edx + 0x38]
mov dword [esi + 0x168], eax
mov eax, 0xfffffff0
lock xadd dword [edx + 8], eax
and eax, 0xfffffff2
cmp eax, 0x12
jne 0x545fc6
mov eax, dword [esi + 0x10]
mov dword [esi + 0x50], edi
mov dword [esi + 0x158], ebx
mov byte [esi + 0xf], al
call fcn.00719c10
mov ebx, dword [esi + 0x158]
mov edi, dword [esi + 0x50]
mov eax, dword [esi + 0x260]
or dword [esi + 0x190], eax
je 0x545010
mov eax, dword [esi + 0x168]
xor ebx, edi
xor eax, dword [esi + 0xb4]
or ebx, eax
jne 0x545010
mov eax, dword [esi + 0xb8]
lea ecx, [esi + 0x1b8]
lea edx, [esi + 0x208]
push dword [eax + 0x14]
mov dword [esi + 0x2bc], eax
push dword [eax + 0xc]
call fcn.0055c340
add esp, 8
cmp byte [esi + 0x1ec], 2
je 0x545010
mov ecx, dword [esi + 0x1c0]
mov edi, dword [esi + 0x1dc]
mov eax, dword [esi + 0x1c8]
mov ebx, dword [esi + 0x1cc]
movzx edx, byte [esi + 0x1d0]
cmp ecx, edi
mov dword [esi + 0x29c], eax
mov dword [esi + 0x154], ebx
mov byte [esi + 0x207], dl
je 0x5463a0
mov eax, dword [esi + 0x2bc]
mov dword [esi + 0x260], ecx
movss xmm0, dword [0x725640]
mov ebx, dword [esi + 0x1bc]
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 0x14]
mov dword [esi + 0x168], eax
mov eax, dword [esi + 0x1d8]
mov dword [esi + 0x50], edx
mov dword [esi + 0x190], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x100]
mov ecx, dword [eax + 0x1c8]
mov eax, dword [esi + 0x1d4]
mov dword [esi + 0x158], eax
mov eax, dword [esi + 0x1b8]
mov dword [esi + 0xb4], eax
call fcn.0048e7c0
mov ecx, dword [esi + 0x158]
cmp dword [esi + 0x260], edi
mov edx, dword [esi + 0xb4]
mov dword [esi + 0x28c], eax
mov edi, dword [esi + 0x50]
mov eax, ecx
cmovb eax, edx
cmovb edx, ecx
mov ecx, dword [esi + 0x190]
cmovb ecx, ebx
cmovb ebx, dword [esi + 0x190]
cmp eax, edx
mov dword [esi + 0x1b4], ecx
mov dword [esi + 0x174], ebx
ja 0x5463a0
movaps xmm0, xmmword [esi + 0xd0]
lea ecx, [edx + edx*2]
mov ebx, eax
mov dword [esi + 0xb4], edx
mov dword [esi + 0x158], eax
shl ecx, 5
mov dword [esi + 0x25c], ecx
lea ecx, [edi + ecx + 0x44]
mov dword [esi + 0x390], ecx
mov ecx, eax
unpcklps xmm0, xmmword [esi + 0xc0]
movlhps xmm0, xmm0
movaps xmmword [esi + 0x400], xmm0
cmp ecx, edx
adc ebx, 0
cmp ecx, dword [esi + 0x168]
jae 0x546f80
cmp ecx, eax
mov dword [esi + 0x260], ebx
mov dword [esi + 0x190], ecx
jne 0x5461e0
mov ecx, dword [esi + 0x1b4]
mov ebx, dword [esi + 0x50]
lea eax, [eax + eax*2]
shl eax, 5
imul edi, ecx, 0x34
add edi, dword [ebx + eax + 0x50]
mov ebx, dword [esi + 0x50]
cmp dword [ebx + eax + 0x58], ecx
mov ebx, 0
mov ecx, dword [esi + 0x190]
cmovbe edi, ebx
mov ebx, dword [esi + 0x50]
test edi, edi
lea edi, [edi + 4]
lea eax, [ebx + eax + 0x48]
cmovne eax, edi
mov edi, dword [esi + 0x50]
cmp ecx, edx
je 0x5461ee
lea edx, [ecx + ecx*2]
xorps xmm2, xmm2
shl edx, 5
movss xmm1, dword [edi + edx + 0x4c]
movss xmm0, dword [edi + edx + 0x44]
cmp byte [edi + edx + 0x5c], 0
movaps xmm3, xmm1
subss xmm3, xmm0
mulss xmm3, dword [0x725640]
je 0x5461d4
movaps xmm2, xmm3
addss xmm2, dword [edi + edx + 0x48]
jmp 0x54622c
lea eax, [ecx + ecx*2]
shl eax, 5
lea eax, [edi + eax + 0x40]
cmp ecx, edx
jne 0x5461a6
mov edx, dword [esi + 0x174]
mov ebx, dword [esi + 0x25c]
imul ecx, edx, 0x34
add ecx, dword [edi + ebx + 0x50]
cmp dword [edi + ebx + 0x58], edx
mov edx, 0
lea edi, [edi + ebx + 0x48]
cmovbe ecx, edx
lea edx, [ecx + 4]
test ecx, ecx
cmovne edi, edx
mov edx, dword [esi + 0x390]
movss xmm2, dword [edi]
movss xmm0, dword [edx]
movss xmm1, dword [edx + 8]
movzx ecx, byte [esi + 0x3d4]
movss xmm3, dword [eax]
mov eax, dword [esi + 0x3d5]
test cl, cl
je 0x546270
test eax, eax
jne 0x546270
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x3d0]
lea edx, [esi + 0x3b0]
mov dword [esi + 0x498], 9
mov byte [esi + 0xf], al
push edx
call fcn.0050fc60
add esp, 4
jmp 0x546379
unpcklps xmm2, xmm1
unpcklps xmm3, xmm0
mov edi, dword [esi + 0x28c]
test cl, cl
lea edx, [esi + 0x78]
mov dword [esi + 0x498], 0x16
movlhps xmm3, xmm2
addps xmm3, xmmword [esi + 0x400]
movups xmmword [esi + 0x68], xmm3
mov dword [edx + 0x10], 0
mov dword [edx + 8], 0
mov dword [edx], 0
mov dword [edx + 0xc], 0
mov dword [edx + 4], 0
mov dword [edx + 0x14], 0
mov dword [esi + 0x90], edi
mov byte [esi + 0x94], 7
je 0x5462f8
lea ecx, [esi + 0x16c]
lea edx, [esi + 0xf8]
mov dword [esi + 0x16c], eax
mov byte [esi + 0x173], 1
mov dword [esi + 0xf8], ecx
lea ecx, [esi + 0x68]
call fcn.00549360
movsd xmm1, qword [esi + 0x88]
movsd xmm2, qword [esi + 0x80]
movsd xmm0, qword [esi + 0x90]
mov ecx, dword [esi + 0x3d0]
lea edx, [esi + 0xf8]
lea eax, [esi + 0x3b0]
mov byte [esi + 0x173], 0
movsd qword [esi + 0x118], xmm1
movsd xmm1, qword [esi + 0x78]
movsd qword [esi + 0x110], xmm2
movsd xmm2, qword [esi + 0x68]
movsd qword [esi + 0x120], xmm0
movsd qword [esi + 0x108], xmm1
movsd xmm1, qword [esi + 0x70]
movsd qword [esi + 0xf8], xmm2
movsd qword [esi + 0x100], xmm1
mov dword [esi + 0x128], eax
mov dword [esi + 0x130], eax
call fcn.005102a0
mov edx, dword [esi + 0xb4]
mov edi, dword [esi + 0x50]
mov eax, dword [esi + 0x158]
mov ebx, dword [esi + 0x260]
cmp dword [esi + 0x190], edx
jae 0x5463a0
cmp ebx, edx
mov ecx, ebx
jbe 0x546140
mov eax, dword [esi + 0x10]
mov dword [esi + 0x498], 9
mov byte [esi + 0xf], al
push dword [esi + 0x20]
mov eax, dword [esi + 0x3c]
call dword [eax + 0xc]
add esp, 4
test al, al
je 0x545010
mov eax, dword [ebp + 8]
mov edi, dword [esi + 0x154]
xorps xmm0, xmm0
mov ecx, dword [eax + 0x100]
mov eax, dword [esi + 0x2bc]
mov edx, dword [eax + 0x14]
mov ebx, dword [ecx + 0x1c4]
test edx, edx
je 0x5465dd
mov dword [esi + 0xb4], ecx
mov ecx, edx
mov eax, dword [eax + 0xc]
movaps xmm2, xmmword [esi + 0xd0]
mov dword [esi + 0x168], ebx
mov dword [esi + 0x174], edx
xor ebx, ebx
xor edx, edx
shl ecx, 5
lea ecx, [ecx + ecx*2]
neg ecx
mov dword [esi + 0x158], eax
mov dword [esi + 0x190], ecx
add eax, 0x5c
xor ecx, ecx
jmp 0x546444
mov ecx, dword [esi + 0x50]
xor edx, edx
inc ecx
add ebx, 0xffffffa0
add eax, 0x60
cmp dword [esi + 0x190], ebx
je 0x5464ae
cmp ecx, dword [esi + 0x29c]
mov dword [esi + 0x50], ecx
jne 0x546495
mov ecx, edi
sub ecx, edx
jb 0x546495
mov edi, dword [eax - 4]
mov dword [esi + 0x260], edi
add edi, edx
cmp dword [esi + 0x154], edi
mov edi, dword [esi + 0x154]
jbe 0x546473
cmp byte [eax], 0
je 0x546495
cmp byte [esi + 0x207], 0
je 0x546744
cmp byte [eax], 0
jne 0x546744
cmp ecx, dword [esi + 0x260]
jb 0x546744
cmp byte [eax], 0
jne 0x546430
add edx, dword [eax - 4]
mov ecx, dword [esi + 0x50]
add ebx, 0xffffffa0
add eax, 0x60
cmp dword [esi + 0x190], ebx
jne 0x546444
mov eax, dword [esi + 0x174]
mov ebx, dword [esi + 0x168]
mov ecx, dword [esi + 0xb4]
xorps xmm5, xmm5
xorps xmm1, xmm1
test eax, eax
je 0x546790
mov edi, dword [esi + 0x158]
lea edx, [eax + eax*2]
shl edx, 5
lea eax, [edx + edi - 0x18]
lea ecx, [edx + edi - 0x1c]
lea edi, [edx + edi - 0x14]
jmp 0x546774
cmp byte [esi + 0x320], 0
je 0x546a9d
mov eax, dword [esi + 0x10]
movzx edx, byte [esi + 0x1f]
lea ecx, [esi + 0x68]
mov byte [esi + 0xf], al
mov dword [esi + 0x50], edx
push dword [esi + 0x150]
push dword [esi + 0x164]
call fcn.00549110
add esp, 8
mov byte [esi + 0xf1], 1
mov dword [esi + 0x498], 0x11
push dword [esi + 0x20]
mov eax, dword [esi + 0x3c]
call dword [eax + 0x10]
add esp, 4
mov edi, edx
mov edx, dword [esi + 0x50]
mov byte [esi + 0xf1], 1
lea ecx, [esi + 0x1b8]
push edi
push eax
call fcn.00549110
add esp, 8
lea eax, [esi + 0x1b8]
mov byte [esi + 0xf1], 0
lea ecx, [esi + 0xf8]
lea edx, [esi + 0x68]
push eax
call fcn.0055ecc0
add esp, 4
push 0x48
lea eax, [esi + 0xf8]
push eax
lea eax, [esi + 0x1b8]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
xor ebx, ebx
mov edi, 5
lea eax, [esi + 0x100]
push 0x48
lea ecx, [esi + 0x1b8]
push ecx
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x304]
lea edx, [esi + 0xf8]
mov dword [esi + 0xfc], ebx
mov dword [esi + 0xf8], edi
mov dword [esi + 0x498], 9
mov byte [esi + 0xf], al
call fcn.005109d0
jmp 0x546a9d
movaps xmm2, xmmword [esi + 0xd0]
xorps xmm5, xmm5
xorps xmm1, xmm1
jmp 0x546790
mov ecx, dword [esi + 0x304]
lea eax, [ecx + 8]
mov dword [esi + 0x2c], ecx
mov dword [esi + 0x50], eax
mov eax, dword [ecx + 8]
test al, 8
jne 0x546615
mov ecx, eax
add ecx, 0x10
jb 0x546615
mov edx, dword [esi + 0x50]
lock cmpxchg dword [edx], ecx
je 0x546623
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x50]
mov byte [esi + 0xf], al
call fcn.00719890
mov eax, dword [esi + 0x2c]
mov ebx, dword [esi + 0x2e4]
mov ecx, dword [esi + 0x2e0]
mov edx, dword [eax + 0x40]
mov edi, dword [eax + 0x4c]
mov dword [esi + 0x40], ebx
mov dword [esi + 0x190], ecx
or edx, dword [eax + 0x44]
setne dl
xor edi, ebx
mov ebx, dword [eax + 0x48]
xor ebx, ecx
or ebx, edi
sete dh
xor ebx, ebx
test dl, dh
jne 0x546675
mov edx, dword [eax + 0x34]
or edx, dword [eax + 0x30]
je 0x546675
mov ecx, dword [esi + 0x190]
mov edx, dword [esi + 0x40]
xor ecx, dword [eax + 0x38]
xor edx, dword [eax + 0x3c]
or edx, ecx
sete bl
mov ecx, dword [esi + 0x50]
mov dword [esi + 0x2c], ebx
mov eax, 0xfffffff0
lock xadd dword [ecx], eax
and eax, 0xfffffff2
cmp eax, 0x12
jne 0x54669a
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x50]
mov byte [esi + 0xf], al
call fcn.00719c10
cmp byte [esi + 0x2c], 0
je 0x5469b0
mov eax, dword [esi + 0x10]
movzx edx, byte [esi + 0x1f]
lea ecx, [esi + 0x68]
mov byte [esi + 0xf], al
mov dword [esi + 0x50], edx
push dword [esi + 0x150]
push dword [esi + 0x164]
call fcn.00549110
add esp, 8
mov byte [esi + 0xf5], 1
mov dword [esi + 0x498], 0xd
push dword [esi + 0x20]
mov eax, dword [esi + 0x3c]
call dword [eax + 0x10]
add esp, 4
mov edi, edx
mov edx, dword [esi + 0x50]
mov byte [esi + 0xf5], 1
lea ecx, [esi + 0x1b8]
push edi
push eax
call fcn.00549110
add esp, 8
lea eax, [esi + 0x1b8]
mov byte [esi + 0xf5], 0
lea ecx, [esi + 0xf8]
lea edx, [esi + 0x68]
push eax
call fcn.0055ecc0
add esp, 4
push 0x48
lea eax, [esi + 0xf8]
push eax
lea eax, [esi + 0x1b8]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
xor ebx, ebx
mov edi, 3
jmp 0x546a58
imul edx, ecx, 0x34
mov edi, dword [esi + 0x158]
add edx, dword [eax - 0xc]
xor eax, eax
cmp dword [esi + 0x260], ecx
cmova eax, edx
sub edi, ebx
mov ebx, dword [esi + 0x168]
lea ecx, [eax + 4]
test eax, eax
lea eax, [edi + 0x48]
cmovne eax, ecx
lea ecx, [edi + 0x44]
add edi, 0x4c
movss xmm5, dword [ecx]
movss xmm0, dword [eax]
movss xmm1, dword [edi]
mov ecx, dword [esi + 0xb4]
mov dword [esi + 0x498], 9
movaps xmm4, xmm2
movaps xmm2, xmmword [esi + 0xc0]
subss xmm1, xmm5
movaps xmm3, xmmword [esi + 0x410]
mov eax, dword [ecx + 0x1f0]
lea ecx, [esi + 0x3b0]
lea edx, [esi + 0xf8]
mov dword [esi + 0x498], 9
addss xmm4, xmm0
subss xmm0, xmm0
unpcklps xmm5, xmm0
unpcklps xmm2, xmm4
addps xmm5, xmm2
addss xmm1, xmm5
addss xmm3, xmm5
movaps xmm0, xmm1
cmpunordss xmm0, xmm1
movaps xmm2, xmm0
andps xmm2, xmm3
maxss xmm3, xmm1
andnps xmm0, xmm3
movaps xmm3, xmmword [0x726700]
orps xmm0, xmm2
unpcklps xmm4, xmm0
addps xmm5, xmm3
addps xmm4, xmm3
movaps xmm2, xmm5
movaps xmm0, xmm4
movaps xmmword [esi + 0x50], xmm4
movaps xmmword [esi + 0x190], xmm5
shufps xmm2, xmm5, 0x55
shufps xmm0, xmm4, 0x55
addss xmm2, xmm4
movaps xmmword [esi + 0x260], xmm0
mulss xmm2, dword [0x725640]
movss dword [esi + 0xf8], xmm2
movss dword [esi + 0xfc], xmm5
movss dword [esi + 0x100], xmm2
movss dword [esi + 0x104], xmm0
mov dword [esi + 0x108], eax
mov eax, dword [esi + 0x10]
mov dword [esi + 0x10c], ebx
mov byte [esi + 0x124], 5
mov byte [esi + 0xf], al
call fcn.005606f0
mov ecx, dword [ebp + 8]
movaps xmm2, xmmword [esi + 0x2c0]
lea eax, [ecx + 0xd0]
movups xmm0, xmmword [eax]
xor eax, eax
ucomiss xmm2, xmm0
jb 0x546d99
movaps xmm3, xmmword [esi + 0x190]
movaps xmm1, xmm0
unpckhpd xmm1, xmm0
ucomiss xmm1, xmm2
jb 0x5468df
movaps xmm2, xmmword [esi + 0x3a0]
movaps xmm1, xmm0
shufps xmm1, xmm0, 0x55
ucomiss xmm2, xmm1
jb 0x5468df
movaps xmm1, xmm0
shufps xmm1, xmm0, 0xff
ucomiss xmm1, xmm2
jb 0x5468df
movaps xmm2, xmmword [esi + 0x420]
movaps xmm1, xmm2
cmpleps xmm1, xmm0
cmpleps xmm0, xmm2
shufps xmm0, xmm1, 0xe4
pslld xmm0, 0x1f
movmskps eax, xmm0
cmp al, 0xf
sete al
mov ebx, dword [esi + 0x2c]
cmp byte [esi + 0x320], 0
mov edx, ebx
sete dh
not dl
test dl, dh
jne 0x546930
test al, al
jne 0x546930
movaps xmm0, xmmword [esi + 0x50]
mov eax, dword [esi + 0x10]
lea edx, [esi + 0xf8]
movss dword [esi + 0xf8], xmm0
movaps xmm0, xmmword [esi + 0x260]
movlps qword [esi + 0xfc], xmm3
mov byte [esi + 0xf], al
movss dword [esi + 0x104], xmm0
push 3
call fcn.00531f00
add esp, 4
cmp byte [esi + 0x64], 0
je 0x545010
mov eax, dword [esi + 0x40]
mov ecx, 8
mov edx, dword [eax]
lea eax, [edx + 8]
mov dword [esi + 0x260], edx
mov dword [esi + 0x190], eax
xor eax, eax
lock cmpxchg dword [edx + 8], ecx
je 0x54696d
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x190]
mov byte [esi + 0xf], al
call fcn.007188f0
mov ecx, dword [esi + 0x260]
movaps xmm0, xmmword [esi + 0x50]
mov eax, 8
xor edx, edx
mov dword [ecx + 0x448], 1
movlps qword [ecx + 0x44c], xmm0
lock cmpxchg dword [ecx + 8], edx
je 0x545010
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x190]
mov byte [esi + 0xf], al
call fcn.00719150
jmp 0x545010
cmp byte [esi + 0x320], 0
je 0x546a9d
mov eax, dword [esi + 0x10]
movzx edx, byte [esi + 0x1f]
lea ecx, [esi + 0x68]
mov byte [esi + 0xf], al
mov dword [esi + 0x50], edx
push dword [esi + 0x150]
push dword [esi + 0x164]
call fcn.00549110
add esp, 8
mov byte [esi + 0xf6], 1
mov dword [esi + 0x498], 0xc
push dword [esi + 0x20]
mov eax, dword [esi + 0x3c]
call dword [eax + 0x10]
add esp, 4
mov edi, edx
mov edx, dword [esi + 0x50]
mov byte [esi + 0xf6], 1
lea ecx, [esi + 0x1b8]
push edi
push eax
call fcn.00549110
add esp, 8
lea eax, [esi + 0x1b8]
mov byte [esi + 0xf6], 0
lea ecx, [esi + 0xf8]
lea edx, [esi + 0x68]
push eax
call fcn.0055ecc0
add esp, 4
push 0x48
lea eax, [esi + 0xf8]
push eax
lea eax, [esi + 0x1b8]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
xor ebx, ebx
mov edi, 5
lea eax, [esi + 0x100]
push 0x48
lea ecx, [esi + 0x1b8]
push ecx
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x304]
lea edx, [esi + 0xf8]
mov dword [esi + 0xfc], ebx
mov dword [esi + 0xf8], edi
mov dword [esi + 0x498], 9
mov byte [esi + 0xf], al
call fcn.005109d0
push 0x58
lea eax, [esi + 0x2d0]
push eax
mov ebx, dword [esi + 0x384]
push ebx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov edi, dword [esi + 0xb8]
lea eax, [ebx + 0xa8]
push 0x54
lea ecx, [esi + 0x208]
push ecx
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
movzx eax, byte [esi + 0x160]
movsd xmm0, qword [esi + 0x2b0]
movaps xmm1, xmmword [esi + 0x2c0]
mov ecx, dword [esi + 0x180]
movzx edx, byte [esi + 0x30]
mov byte [ebx + 0x64], al
movzx eax, word [esi + 0x17c]
mov word [ebx + 0x65], ax
movzx eax, byte [esi + 0x17e]
mov byte [ebx + 0x67], al
mov eax, dword [esi + 0x18]
mov dword [ebx + 0x68], eax
mov eax, dword [esi + 0x14]
mov dword [ebx + 0x6c], eax
movzx eax, byte [esi + 0xa0]
mov byte [ebx + 0x70], al
movzx eax, word [esi + 0x178]
mov word [ebx + 0x71], ax
movzx eax, byte [esi + 0x17a]
mov byte [ebx + 0x73], al
movzx eax, byte [esi + 0x28]
movsd qword [ebx + 0x74], xmm0
movsd xmm0, qword [esi + 0x290]
mov byte [ebx + 0x80], al
mov eax, dword [esi + 0x297]
movsd qword [ebx + 0x81], xmm0
movaps xmm0, xmmword [esi + 0xd0]
mov dword [ebx + 0x88], eax
movzx eax, word [esi + 0x27c]
mov word [ebx + 0x8d], ax
movzx eax, byte [esi + 0x27e]
mov byte [ebx + 0x8f], al
mov dword [ebx + 0xfc], edi
movss dword [ebx + 0x90], xmm0
movaps xmm0, xmmword [esi + 0xc0]
mov edi, dword [esi + 0x48]
mov eax, dword [esi + 0x44]
movss dword [ebx + 0x94], xmm0
movups xmmword [ebx + 0x98], xmm1
mov dword [ebx + 0x58], edi
mov edi, dword [esi + 0x24]
mov dword [ebx + 0x5c], eax
mov dword [ebx + 0x60], ecx
mov ecx, dword [esi + 0x3d0]
mov dword [ebx + 0x7c], edi
mov byte [ebx + 0x8c], dl
lock dec dword [ecx]
jne 0x546bf9
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x3d0]
mov byte [esi + 0x171], 1
mov byte [esi + 0x172], 0
mov dword [esi + 0x498], 8
mov byte [esi + 0x170], al
call fcn.00562540
cmp dword [esi + 0x330], 2
jb 0x546c1e
mov eax, dword [esi + 0x334]
lock dec dword [eax]
jne 0x546c1e
mov ecx, dword [esi + 0x334]
mov edx, dword [esi + 0x338]
call fcn.004f2ff0
cmp byte [esi + 0x10], 0
je 0x546c49
cmp dword [esi + 0x2a0], 2
jb 0x546c49
mov eax, dword [esi + 0x2a4]
lock dec dword [eax]
jne 0x546c49
mov ecx, dword [esi + 0x2a4]
mov edx, dword [esi + 0x2a8]
call fcn.004f2ff0
cmp dword [esi + 0x150], 0
je 0x546c66
push dword [esi + 0x164]
push 0
push dword [0x919820]
call dword [sym.imp.kernel32.dll_HeapFree]
cmp byte [esi + 0x10], 0
je 0x546c81
lea ecx, [esi + 0x348]
mov dword [esi + 0x498], 0xffffffff
call fcn.005266f0
mov eax, dword [esi + 0x490]
mov dword fs:[0], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esi + 0x10]
mov edi, dword [esi + 0xd0]
lea ecx, [esi + 0x1b8]
mov dword [esi + 0x1b8], ebx
mov dword [esi + 0x1bc], eax
mov dword [esi + 0x1c0], edi
call fcn.00547a90
cmp eax, 0x110000
mov ebx, edi
je 0x546eff
lea ecx, [esi + 0x1b8]
call fcn.00547a90
cmp eax, 0x110000
jne 0x546e8d
mov edi, dword [esi + 0xd0]
lea ebx, [edi + 1]
jmp 0x546eff
mov eax, dword [esi + 0x48]
mov edx, dword [esi + 0x10]
mov dword [esi + 0x218], eax
mov dword [esi + 0x21c], edx
mov dword [esi + 0x220], ecx
mov ecx, dword [esi + 0x24]
movzx eax, word [esi + 0x1b8]
mov ebx, dword [esi + 0x2c]
movzx edi, word [esi + 0x68]
movzx edx, byte [esi + 0x6a]
movsd xmm0, qword [esi + 0x114]
movsd xmm1, qword [esi + 0x11c]
mov byte [esi + 0x224], cl
mov word [esi + 0x225], ax
movzx eax, byte [esi + 0x1ba]
mov byte [esi + 0x227], al
mov eax, dword [esi + 0x180]
mov dword [esi + 0x228], eax
mov dword [esi + 0x22c], ebx
mov byte [esi + 0x230], cl
mov ecx, dword [esi + 0x12c]
mov word [esi + 0x231], di
mov byte [esi + 0x233], dl
mov dword [esi + 0x24c], ecx
movsd qword [esi + 0x234], xmm0
movsd qword [esi + 0x23c], xmm1
movsd xmm1, qword [esi + 0x124]
movsd qword [esi + 0x244], xmm1
jmp 0x5420f1
movaps xmm3, xmmword [esi + 0x190]
jmp 0x5468df
add ebx, 2
mov ecx, dword [esi + 0x1c0]
movsd xmm0, qword [esi + 0x1b8]
cmp eax, 0xd
lea edi, [esi + 0xf8]
sete dl
cmp eax, 0xa
sete al
or al, dl
mov dword [esi + 0x100], ecx
movsd qword [esi + 0xf8], xmm0
mov byte [esi + 0x10], al
mov ecx, edi
call fcn.00547a90
cmp eax, 0x110000
je 0x546e0b
cmp eax, 0xd
sete cl
cmp eax, 0xa
sete al
or al, cl
cmp byte [esi + 0x10], al
jne 0x546e0b
inc ebx
mov ecx, edi
call fcn.00547a90
cmp eax, 0x110000
jne 0x546de9
mov edx, dword [esi + 0x48]
mov al, 1
xor ecx, ecx
jmp 0x541b4f
mov edx, dword [esi + 0xd0]
mov eax, 0xffffffff
mov ecx, ebx
mov edi, ebx
inc edx
cmovne eax, edx
mov edx, dword [esi + 0x14]
push eax
call fcn.00547c40
add esp, 4
mov ebx, eax
mov eax, dword [esi + 0x10]
lea ecx, [esi + 0x1b8]
mov dword [esi + 0x1b8], edi
mov dword [esi + 0x1bc], eax
mov dword [esi + 0x1c0], ebx
call fcn.00547a90
mov edx, ebx
cmp eax, 0x110000
je 0x546f77
lea ecx, [esi + 0x1b8]
mov dword [esi + 0x48], edx
call fcn.00547a90
cmp eax, 0x110000
jne 0x546f0b
mov edx, dword [esi + 0x48]
mov al, 1
xor ecx, ecx
mov ebx, edx
inc ebx
jmp 0x541b4f
mov ecx, dword [esi + 0xd0]
mov edi, dword [esi + 0x1c0]
movsd xmm0, qword [esi + 0x1b8]
cmp eax, 0xd
sete dl
cmp eax, 0xa
sete al
or al, dl
mov dword [esi + 0x100], edi
lea ebx, [ecx + 2]
lea edi, [esi + 0xf8]
movsd qword [esi + 0xf8], xmm0
mov byte [esi + 0x10], al
mov ecx, edi
call fcn.00547a90
cmp eax, 0x110000
je 0x546ef9
cmp eax, 0xd
sete cl
cmp eax, 0xa
sete al
or al, cl
cmp byte [esi + 0x10], al
jne 0x546ef9
inc ebx
mov ecx, edi
call fcn.00547a90
cmp eax, 0x110000
jne 0x546ed7
mov edi, dword [esi + 0xd0]
mov eax, dword [esi + 0x24]
mov edx, edi
xor ecx, ecx
jmp 0x541b4f
mov ebx, dword [esi + 0x48]
mov ecx, dword [esi + 0x1c0]
movsd xmm0, qword [esi + 0x1b8]
lea edi, [esi + 0xf8]
add ebx, 2
cmp eax, 0xd
mov dword [esi + 0x100], ecx
movsd qword [esi + 0xf8], xmm0
sete cl
cmp eax, 0xa
sete al
or al, cl
mov byte [esi + 0x10], al
mov ecx, edi
call fcn.00547a90
cmp eax, 0x110000
je 0x546f74
cmp eax, 0xd
sete cl
cmp eax, 0xa
sete al
or al, cl
cmp byte [esi + 0x10], al
jne 0x546f74
inc ebx
mov ecx, edi
call fcn.00547a90
cmp eax, 0x110000
jne 0x546f52
mov edx, dword [esi + 0x48]
mov al, 1
xor ecx, ecx
jmp 0x541b4f
mov eax, dword [esi + 0x10]
mov edx, dword [esi + 0x168]
mov dword [esi + 0x498], 9
mov byte [esi + 0xf], al
push 0x74128c
call fcn.00709fa0
add esp, 4
jmp 0x547145
mov byte [esi + 0xf], 1
mov ecx, 0x739730
mov edx, 0x19
push 0x73974c
call fcn.0070a0f0
add esp, 4
jmp 0x547145
ud2
mov dword [esi + 0x498], 3
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 0x547145
mov ecx, 8
mov edx, 0x60
mov dword [esi + 0x498], 0x24
call fcn.00709d20
jmp 0x547145
mov byte [esi + 0xbd], 1
mov byte [esi + 0xbe], 1
call fcn.00425040
jmp 0x547145
call fcn.00425040
jmp 0x547145
call fcn.00425040
jmp 0x547145
mov eax, dword [esi + 0x10]
mov ecx, str.called__Option::unwrap____on_a__None__value_rustc_d5c2e9c342b358556da91d61ed4133f6f50fc0c3library_std_src_synconce.rs
mov edx, 0x2b
mov byte [esi + 0xf], al
push 0x741278
call fcn.0070a0f0
add esp, 4
jmp 0x547145
mov ecx, 1
mov edx, edi
mov dword [esi + 0x498], 0xa
call fcn.00709d20
jmp 0x547145
mov dword [esi + 0x498], 0xa
call fcn.00425040
jmp 0x547145
mov eax, dword [esi + 0x10]
mov byte [esi + 0xf], al
call fcn.00425040
jmp 0x547145
ud2