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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
mov eax, 0x33c0
call fcn.100f6d70
mov esi, esp
mov dword [esi + 0x33a8], ebp
mov dword [esi + 0x33ac], esp
mov dword [esi + 0x33b8], 0xffffffff
lea eax, [esi + 0x33b0]
mov dword [esi + 0x33b4], 0x1002c9d0
mov edx, dword fs:[0]
mov dword [esi + 0x33b0], edx
mov dword fs:[0], eax
mov eax, dword [ecx + 0x13c]
cmp eax, dword [ecx + 0x140]
je 0x1002288d
mov dword [esi + 0x14], ecx
push 0x24
call fcn.100f6bcd
add esp, 4
xorps xmm0, xmm0
movups xmmword [eax], xmm0
movups xmmword [eax + 0x10], xmm0
mov dword [eax + 0x20], 0
mov dword [esi + 0x3c], eax
mov dword [esi + 0x33b8], 0
call fcn.10024020
fstp st(0)
call fcn.10024210
mov eax, dword [esi + 0x14]
mov edx, dword [eax + 0x13c]
mov ecx, dword [eax + 0x140]
mov dword [esi + 0x1c], ecx
lea ecx, [esi + 0x3390]
jmp 0x100205df
mov eax, dword [esi + 0x14]
lea ecx, [esi + 0x3390]
mov edx, dword [esi + 8]
add edx, 0x3c
cmp edx, dword [esi + 0x1c]
je 0x10020c3b
mov dword [esi + 8], edx
cmp byte [edx + 0x18], 0
je 0x100205d9
xorps xmm0, xmm0
movaps xmmword [esi + 0x380], xmm0
movaps xmmword [esi + 0x370], xmm0
movaps xmmword [esi + 0x360], xmm0
movaps xmmword [esi + 0x350], xmm0
lea eax, [esi + 0x390]
nop word cs:[eax + eax]
movups xmmword [eax + 0x20], xmm0
movups xmmword [eax + 0x10], xmm0
movups xmmword [eax], xmm0
movups xmmword [eax + 0x30], xmm0
movups xmmword [eax + 0x40], xmm0
movups xmmword [eax + 0x50], xmm0
movups xmmword [eax + 0x60], xmm0
movups xmmword [eax + 0x70], xmm0
movups xmmword [eax + 0x80], xmm0
movups xmmword [eax + 0x90], xmm0
movups xmmword [eax + 0xa0], xmm0
movups xmmword [eax + 0xb0], xmm0
movups xmmword [eax + 0xc0], xmm0
movups xmmword [eax + 0xd0], xmm0
movups xmmword [eax + 0xe0], xmm0
movups xmmword [eax + 0x110], xmm0
movups xmmword [eax + 0x100], xmm0
movups xmmword [eax + 0xf0], xmm0
movups xmmword [eax + 0x140], xmm0
movups xmmword [eax + 0x130], xmm0
movups xmmword [eax + 0x120], xmm0
movups xmmword [eax + 0x150], xmm0
movups xmmword [eax + 0x160], xmm0
movups xmmword [eax + 0x170], xmm0
movups xmmword [eax + 0x180], xmm0
movups xmmword [eax + 0x190], xmm0
movups xmmword [eax + 0x1a0], xmm0
movups xmmword [eax + 0x1b0], xmm0
movups xmmword [eax + 0x1c0], xmm0
movups xmmword [eax + 0x1d0], xmm0
movups xmmword [eax + 0x1e0], xmm0
movups xmmword [eax + 0x1f0], xmm0
movups xmmword [eax + 0x200], xmm0
movups xmmword [eax + 0x210], xmm0
movups xmmword [eax + 0x220], xmm0
movups xmmword [eax + 0x230], xmm0
movups xmmword [eax + 0x260], xmm0
movups xmmword [eax + 0x250], xmm0
movups xmmword [eax + 0x240], xmm0
movups xmmword [eax + 0x290], xmm0
movups xmmword [eax + 0x280], xmm0
movups xmmword [eax + 0x270], xmm0
movups xmmword [eax + 0x2c0], xmm0
movups xmmword [eax + 0x2b0], xmm0
movups xmmword [eax + 0x2a0], xmm0
movups xmmword [eax + 0x2f0], xmm0
movups xmmword [eax + 0x2e0], xmm0
movups xmmword [eax + 0x2d0], xmm0
add eax, 0x300
cmp eax, ecx
jne 0x10020620
movups xmmword [ecx], xmm0
mov byte [ecx + 0x10], 0
mov eax, dword [esi + 8]
mov eax, dword [eax + 0xc]
mov edx, dword [eax]
test edx, edx
je 0x1002078c
mov eax, dword [0x1035678c]
mov ecx, dword [eax + 0x128]
cmp byte [ecx + edx], 0
je 0x100209d4
mov eax, dword [esi + 8]
cmp byte [eax + 0x18], 0
je 0x10022a2a
mov eax, dword [eax + 0xc]
mov edx, dword [eax]
test edx, edx
je 0x100207b7
mov eax, dword [0x1035678c]
mov ecx, dword [eax + 0x128]
cmp byte [ecx + edx], 0
je 0x10020b0c
mov eax, dword [0x10356800]
mov ecx, dword [eax + 0x154]
cmp ecx, dword [eax + 0x158]
je 0x100207d0
mov dword [eax + 0x158], ecx
mov edx, dword [esi + 8]
mov ecx, dword [edx + 0x24]
cmp ecx, dword [edx + 0x28]
je 0x100207de
mov dword [edx + 0x28], ecx
mov ecx, dword [eax + 0x148]
mov eax, dword [eax + 0x14c]
mov dword [esi + 4], eax
nop dword [eax]
mov dword [esi], ecx
cmp ecx, dword [esi + 4]
je 0x10020870
mov dword [esi + 0x20], esp
push eax
sub esp, 0x10
mov eax, esp
mov edi, dword [esi + 8]
cmp byte [edi + 0x18], 0
je 0x100229f3
mov ecx, dword [esi]
movsd xmm0, qword [ecx]
xorps xmm1, xmm1
movlps qword [eax + 4], xmm1
mov ecx, dword [edi + 0x14]
test ecx, ecx
je 0x10020840
lock inc dword [ecx + 4]
mov ecx, dword [edi + 0x14]
mov dword [esi + 0x33b8], 0
jmp 0x10020842
xor ecx, ecx
mov edx, dword [edi + 0x10]
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
mov dword [eax], edi
movlps qword [eax + 0xc], xmm0
mov dword [esi + 0x33b8], 0
call fcn.10028110
add esp, 0x14
mov esp, dword [esi + 0x20]
mov ecx, dword [esi]
add ecx, 8
jmp 0x100207f0
mov eax, dword [esi + 8]
mov eax, dword [eax + 0xc]
mov edx, dword [eax]
test edx, edx
je 0x100205d0
mov eax, dword [0x1035678c]
mov ecx, dword [eax + 0x128]
cmp byte [ecx + edx], 0
jne 0x100205d0
mov eax, dword [eax + 0x1c]
cmp dword [eax + edx], 0
jle 0x100205d0
lea ecx, [edx + 8]
mov eax, dword [edx + 8]
mov eax, dword [eax + 0x24]
mov dword [esi + 0x33b8], 0
mov dword [esi], edx
call eax
mov edi, dword [esi]
test al, al
jne 0x100205d0
mov ecx, dword [esi + 0x3394]
mov eax, dword [0x1035678c]
mov edx, dword [eax + 0x84]
mov dword [edx + edi + 8], ecx
mov ecx, dword [esi + 0x3398]
mov edx, dword [eax + 0x84]
mov dword [edx + edi + 0xc], ecx
cmp byte [esi + 0x33a0], 0
je 0x10020918
mov eax, dword [esi + 0x3390]
shl eax, 4
lea eax, [eax + eax*2]
push eax
lea eax, [esi + 0x390]
push eax
push dword [edi + 0x2900]
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [0x1035678c]
mov ecx, dword [esi + 0x339c]
mov eax, dword [eax + 0x18]
mov dword [edi + eax + 4], ecx
mov eax, dword [0x1035678c]
mov eax, dword [eax + 0x2c]
lea edx, [esi + 0x35c]
mov ecx, dword [edx + 0x18]
mov dword [eax + edi + 8], ecx
movsd xmm0, qword [edx + 0x10]
movsd qword [eax + edi], xmm0
mov eax, dword [edx + 0x24]
mov dword [edi + 0x3b0], eax
movsd xmm0, qword [edx + 0x1c]
movsd qword [edi + 0x3a8], xmm0
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0xc]
mov ecx, dword [esi]
test eax, eax
je 0x10020985
mov edx, dword [0x1035678c]
mov ecx, eax
lea eax, [esi + 0x35c]
push eax
lea eax, [esi + 0x350]
push eax
call dword [edx + 0x280]
mov ecx, dword [esi]
movss xmm0, dword [esi + 0x368]
mov dword [esi + 0x140], 0
movss dword [esi + 0x144], xmm0
mov dword [esi + 0x148], 0
mov eax, dword [0x1035678c]
lea edx, [esi + 0x140]
push edx
call dword [eax + 0x26c]
mov ecx, dword [esi]
mov eax, dword [0x1035678c]
lea edx, [esi + 0x384]
push edx
call dword [eax + 0x270]
jmp 0x100205d0
mov eax, dword [eax + 0x1c]
cmp dword [eax + edx], 0
jle 0x1002078c
lea ecx, [edx + 8]
mov dword [esi], edx
mov eax, dword [edx + 8]
mov eax, dword [eax + 0x24]
mov dword [esi + 0x33b8], 0
call eax
test al, al
mov ebx, dword [esi]
jne 0x1002078c
mov edi, dword [0x1035678c]
mov eax, dword [edi + 0x84]
mov eax, dword [eax + ebx + 8]
mov dword [esi + 0x3394], eax
mov eax, dword [edi + 0x84]
mov eax, dword [eax + ebx + 0xc]
mov dword [esi + 0x3398], eax
mov byte [esi + 0x33a0], 0
mov ecx, dword [ebx + 0x290c]
mov dword [esi + 0x3390], ecx
mov eax, dword [ebx + 0x2900]
test eax, eax
je 0x10020a63
shl ecx, 4
lea ecx, [ecx + ecx*2]
push ecx
push eax
lea eax, [esi + 0x390]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov byte [esi + 0x33a0], 1
mov eax, dword [edi + 0x18]
mov eax, dword [ebx + eax + 4]
mov dword [esi + 0x339c], eax
mov eax, dword [edi + 0x2c]
mov ecx, dword [eax + ebx + 8]
lea edx, [esi + 0x35c]
mov dword [edx + 0x18], ecx
movsd xmm0, qword [eax + ebx]
movsd qword [edx + 0x10], xmm0
mov eax, dword [ebx + 0x3b0]
mov dword [edx + 0x24], eax
movsd xmm0, qword [ebx + 0x3a8]
movsd qword [edx + 0x1c], xmm0
mov eax, dword [edi + 0x54]
movsd xmm0, qword [eax + ebx]
movsd qword [esi + 0x350], xmm0
mov eax, dword [eax + ebx + 8]
mov dword [esi + 0x358], eax
mov eax, dword [edi + 0x58]
mov ecx, dword [eax + ebx + 8]
mov dword [edx + 8], ecx
movsd xmm0, qword [eax + ebx]
movsd qword [edx], xmm0
mov eax, dword [edi + 0x34]
mov ecx, dword [eax + ebx + 8]
lea edx, [esi + 0x384]
mov dword [edx + 8], ecx
movsd xmm0, qword [eax + ebx]
movsd qword [edx], xmm0
mov eax, dword [edi + 0x1ac]
mov eax, dword [eax + ebx]
test eax, eax
je 0x1002078c
movss xmm0, dword [eax + 0x80]
movss dword [esi + 0x368], xmm0
jmp 0x1002078c
mov eax, dword [eax + 0x1c]
cmp dword [eax + edx], 0
jle 0x100207b7
mov eax, dword [esi + 8]
mov eax, dword [eax + 0x10]
mov dword [esi + 0x20], eax
lea ecx, [edx + 8]
mov dword [esi], edx
mov eax, dword [edx + 8]
mov eax, dword [eax + 0x24]
mov dword [esi + 0x33b8], 0
call eax
test al, al
mov edi, dword [esi]
jne 0x100207b7
mov ebx, dword [esi + 0x20]
cmp byte [ebx + 0x6432], 0
je 0x10020b87
mov eax, dword [edi + 0x2900]
test eax, eax
je 0x10020b87
mov ecx, dword [edi + 0x290c]
shl ecx, 4
lea ecx, [ecx + ecx*2]
push ecx
push ebx
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [0x1035678c]
mov ecx, dword [eax + 0x274]
mov ecx, dword [ecx + 0xa]
mov ecx, dword [ecx]
mov eax, dword [eax + 0x18]
mov dword [edi + eax + 4], ecx
mov eax, dword [0x1035678c]
mov ecx, dword [eax + 0x2c]
mov edx, dword [ebx + 0x6384]
mov dword [ecx + edi + 8], edx
movsd xmm0, qword [ebx + 0x637c]
movsd qword [ecx + edi], xmm0
mov ecx, dword [ebx + 0x6390]
mov dword [edi + 0x3b0], ecx
lea edx, [ebx + 0x637c]
movsd xmm0, qword [ebx + 0x6388]
movsd qword [edi + 0x3a8], xmm0
mov ecx, edi
push edx
call dword [eax + 0x270]
mov ecx, dword [esi]
mov eax, dword [ecx]
call dword [eax + 0xc]
test eax, eax
je 0x10020bfb
mov ecx, dword [esi + 0x20]
lea edx, [ecx + 0x63b0]
lea edi, [ecx + 0x63e0]
mov ebx, dword [0x1035678c]
mov ecx, eax
push edi
push edx
call dword [ebx + 0x280]
mov eax, dword [esi + 0x20]
movss xmm0, dword [eax + 0x63bc]
mov dword [esi + 0x140], 0
movss dword [esi + 0x144], xmm0
mov dword [esi + 0x148], 0
mov eax, dword [0x1035678c]
mov ecx, dword [esi]
lea edx, [esi + 0x140]
push edx
call dword [eax + 0x26c]
jmp 0x100207b7
mov ebx, dword [eax + 0x13c]
mov ecx, dword [eax + 0x140]
mov dword [esi + 0x20], ecx
cmp ebx, ecx
je 0x10020e53
mov ecx, 0x8421085
lea edi, [esi + 0x350]
mov eax, edi
mul ecx
sub edi, edx
shr edi, 1
add edi, edx
shr edi, 4
mov ecx, edi
shl ecx, 5
sub edi, ecx
lea eax, [esi + edi]
add eax, 0x350
mov dword [esi + 8], eax
mov dword [esi + 0x33b8], 0
nop word cs:[eax + eax]
mov dword [esi + 0x350], 0
mov dword [esi + 0x354], 0
mov dword [esi + 0x358], 0
lea edx, [esi + 0x350]
mov dword [esi + 0x354], edx
mov ecx, dword [esi + 8]
mov dword [esi + 0x358], ecx
mov eax, ebx
rol eax, cl
sub eax, edx
bswap eax
mov dword [esi + 0x350], eax
mov dword [esi], ebx
lea eax, [ebx + 0x24]
push 1
push eax
push dword [esi + 0x358]
push dword [esi + 0x354]
push dword [esi + 0x350]
call fcn.10027280
test al, al
je 0x10020d03
mov ebx, dword [esi]
add ebx, 0x3c
cmp ebx, dword [esi + 0x20]
jne 0x10020c90
jmp 0x10020e4a
mov ebx, dword [esi]
cmp ebx, dword [esi + 0x20]
je 0x10020e4a
lea ecx, [ebx + 0x3c]
cmp ecx, dword [esi + 0x20]
je 0x10020dd9
mov edx, 0x8421085
lea edi, [esi + 0x350]
mov eax, edi
mul edx
sub edi, edx
shr edi, 1
add edi, edx
shr edi, 4
mov edx, edi
shl edx, 5
sub edi, edx
lea eax, [esi + edi]
add eax, 0x350
mov dword [esi + 4], eax
mov dword [esi + 8], ebx
jmp 0x10020d6b
mov edi, dword [esi + 8]
mov ecx, edi
mov ebx, dword [esi]
push ebx
call fcn.1002b8b0
add edi, 0x3c
mov dword [esi + 8], edi
lea ecx, [ebx + 0x3c]
cmp ecx, dword [esi + 0x20]
je 0x10020ddc
mov eax, ebx
mov edx, ecx
mov dword [esi + 0x350], 0
mov dword [esi + 0x354], 0
mov dword [esi + 0x358], 0
lea edi, [esi + 0x350]
mov dword [esi + 0x354], edi
mov ecx, dword [esi + 4]
mov dword [esi + 0x358], ecx
mov dword [esi], edx
rol edx, cl
sub edx, edi
bswap edx
mov dword [esi + 0x350], edx
add eax, 0x60
push 1
push eax
push dword [esi + 0x358]
push dword [esi + 0x354]
push dword [esi + 0x350]
call fcn.10027280
test al, al
jne 0x10020d50
mov ebx, dword [esi]
jmp 0x10020d63
mov dword [esi + 8], ebx
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0x20]
je 0x10020e4a
mov eax, dword [esi + 0x14]
mov eax, dword [eax + 0x140]
mov ebx, dword [esi + 0x20]
cmp eax, ebx
je 0x10020e20
mov edi, dword [esi + 8]
mov dword [esi], eax
nop dword [eax]
mov ecx, edi
push ebx
call fcn.1002b8b0
mov eax, dword [esi]
add edi, 0x3c
add ebx, 0x3c
cmp ebx, eax
jne 0x10020e00
mov dword [esi + 8], edi
mov eax, dword [esi + 0x14]
mov ebx, dword [eax + 0x140]
cmp dword [esi + 8], ebx
je 0x10020e3e
mov edi, dword [esi + 8]
nop dword [eax + eax]
mov ecx, edi
call fcn.1001ca10
add edi, 0x3c
cmp edi, ebx
jne 0x10020e30
mov eax, dword [esi + 0x14]
mov ecx, dword [esi + 8]
mov dword [eax + 0x140], ecx
mov eax, dword [esi + 0x14]
mov ebx, dword [eax + 0x13c]
mov edi, dword [eax + 0x140]
cmp ebx, edi
je 0x1002285d
lea eax, [ebx + 0x3c]
cmp eax, edi
je 0x10020ed0
mov dword [esi + 0x20], edi
mov ecx, dword [0x1035678c]
mov ecx, dword [ecx + 0x1c]
mov dword [esi + 8], ecx
mov dword [esi], ebx
mov edx, ebx
jmp 0x10020e91
cmp edi, ebx
cmovle edx, ecx
mov edi, edx
add eax, 0x3c
mov edx, edi
cmp eax, dword [esi + 0x20]
je 0x10020eba
mov ecx, dword [eax + 0xc]
mov edi, dword [eax + 0x1c]
mov ecx, dword [ecx]
mov ebx, dword [esi + 8]
mov ebx, dword [ebx + ecx]
mov ecx, dword [edi]
mov edi, eax
cmp ecx, ebx
jge 0x10020e87
mov edi, dword [edx + 0x1c]
mov edi, dword [edi]
mov dword [esi + 4], eax
cmp ecx, edi
mov ecx, dword [esi + 4]
jg 0x10020e80
mov ecx, edx
jmp 0x10020e80
test edi, edi
jne 0x10020eda
mov ebx, dword [esi]
mov edi, dword [esi + 0x20]
cmp ebx, edi
jne 0x10020fb0
jmp 0x1002285d
test ebx, ebx
je 0x10020fb0
mov edi, ebx
mov eax, dword [0x103567bc]
mov byte [eax + 8], 0
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
mov dword [esi + 0x20], eax
mov dword [esi + 0xd4], 0
mov dword [esi + 0xd8], 0
mov dword [esi + 0xdc], 0
lea ebx, [esi + 0xd4]
mov ecx, 0x8421085
mov eax, ebx
mul ecx
mov dword [esi + 0xd8], ebx
mov eax, ebx
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 4
mov ecx, eax
shl ecx, 5
sub eax, ecx
lea ecx, [esi + eax]
add ecx, 0xd4
mov dword [esi], edi
rol edi, cl
mov dword [esi + 0xdc], ecx
sub edi, ebx
bswap edi
mov dword [esi + 0xd4], edi
mov eax, dword [esi + 0xd4]
mov edx, dword [esi + 0xd8]
mov edi, dword [esi + 0xdc]
mov dword [esi + 0x33b8], 0
mov ecx, dword [esi + 0x14]
push dword [esi + 0x20]
push edi
push edx
push eax
call fcn.10029410
mov edi, eax
test eax, eax
je 0x10020fc3
mov edx, dword [esi]
mov eax, dword [edx + 0xc]
mov ecx, dword [eax]
mov eax, dword [esi + 0x3c]
mov dword [eax], ecx
cvtsi2ss xmm0, dword [edi]
movss dword [eax + 0x10], xmm0
cmp byte [edx + 0x18], 0
je 0x10022a39
mov ecx, dword [edx + 0x14]
test ecx, ecx
je 0x10020fc8
lock inc dword [ecx + 4]
mov ecx, dword [edx + 0x14]
jmp 0x10020fca
mov ecx, ebx
call fcn.1001ca10
add ebx, 0x3c
cmp ebx, edi
jne 0x10020fb0
jmp 0x1002284e
mov ecx, dword [esi + 0x3c]
jmp 0x10021011
xor ecx, ecx
mov edx, dword [edx + 0x10]
mov dword [eax + 0x18], edx
mov ebx, dword [eax + 0x1c]
mov dword [eax + 0x1c], ecx
test ebx, ebx
je 0x10020ff3
lock dec dword [ebx + 4]
jne 0x10020ff3
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax]
lock dec dword [ebx + 8]
jne 0x10020ff3
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 4]
mov eax, dword [edi + 0x20]
mov ecx, dword [esi + 0x3c]
mov dword [ecx + 0x14], eax
movsd xmm0, qword [edi + 0x14]
movsd qword [ecx + 4], xmm0
mov eax, dword [edi + 0x1c]
mov dword [ecx + 0xc], eax
mov eax, dword [esi]
mov dword [ecx + 0x20], eax
cmp dword [ecx], 0
mov eax, dword [esi + 0x14]
je 0x10022822
cmp dword [ecx + 0x18], 0
je 0x10022822
mov dword [esi], ecx
mov eax, dword [0x103567e0]
cmp dword [eax + 0x28], 5
jne 0x1002103b
mov dword [eax + 0x28], 3
mov ecx, dword [0x103567dc]
push dword [ebp + 8]
call fcn.1003b840
lea eax, [esi + 0x390]
xorps xmm0, xmm0
movaps xmmword [esi + 0x380], xmm0
movaps xmmword [esi + 0x370], xmm0
movaps xmmword [esi + 0x360], xmm0
movaps xmmword [esi + 0x350], xmm0
lea ecx, [esi + 0x3390]
nop word cs:[eax + eax]
movups xmmword [eax + 0x20], xmm0
movups xmmword [eax + 0x10], xmm0
movups xmmword [eax], xmm0
movups xmmword [eax + 0x30], xmm0
movups xmmword [eax + 0x40], xmm0
movups xmmword [eax + 0x50], xmm0
movups xmmword [eax + 0x60], xmm0
movups xmmword [eax + 0x70], xmm0
movups xmmword [eax + 0x80], xmm0
movups xmmword [eax + 0x90], xmm0
movups xmmword [eax + 0xa0], xmm0
movups xmmword [eax + 0xb0], xmm0
movups xmmword [eax + 0xc0], xmm0
movups xmmword [eax + 0xd0], xmm0
movups xmmword [eax + 0xe0], xmm0
movups xmmword [eax + 0x110], xmm0
movups xmmword [eax + 0x100], xmm0
movups xmmword [eax + 0xf0], xmm0
movups xmmword [eax + 0x140], xmm0
movups xmmword [eax + 0x130], xmm0
movups xmmword [eax + 0x120], xmm0
movups xmmword [eax + 0x150], xmm0
movups xmmword [eax + 0x160], xmm0
movups xmmword [eax + 0x170], xmm0
movups xmmword [eax + 0x180], xmm0
movups xmmword [eax + 0x190], xmm0
movups xmmword [eax + 0x1a0], xmm0
movups xmmword [eax + 0x1b0], xmm0
movups xmmword [eax + 0x1c0], xmm0
movups xmmword [eax + 0x1d0], xmm0
movups xmmword [eax + 0x1e0], xmm0
movups xmmword [eax + 0x1f0], xmm0
movups xmmword [eax + 0x200], xmm0
movups xmmword [eax + 0x210], xmm0
movups xmmword [eax + 0x220], xmm0
movups xmmword [eax + 0x230], xmm0
movups xmmword [eax + 0x260], xmm0
movups xmmword [eax + 0x250], xmm0
movups xmmword [eax + 0x240], xmm0
movups xmmword [eax + 0x290], xmm0
movups xmmword [eax + 0x280], xmm0
movups xmmword [eax + 0x270], xmm0
movups xmmword [eax + 0x2c0], xmm0
movups xmmword [eax + 0x2b0], xmm0
movups xmmword [eax + 0x2a0], xmm0
movups xmmword [eax + 0x2f0], xmm0
movups xmmword [eax + 0x2e0], xmm0
movups xmmword [eax + 0x2d0], xmm0
add eax, 0x300
cmp eax, ecx
jne 0x10021080
xorps xmm0, xmm0
movups xmmword [ecx], xmm0
mov byte [ecx + 0x10], 0
mov edi, dword [esi]
mov edx, dword [edi]
test edx, edx
je 0x10021206
mov eax, dword [0x1035678c]
mov ecx, dword [eax + 0x128]
cmp byte [ecx + edx], 0
je 0x100213ae
mov edx, dword [edi]
test edx, edx
je 0x10021206
mov eax, dword [0x1035678c]
mov ecx, dword [eax + 0x128]
cmp byte [ecx + edx], 0
je 0x1002155a
mov eax, dword [edi + 0x20]
mov ecx, dword [edi + 0xc]
mov dword [eax + 0x38], ecx
movsd xmm0, qword [edi + 4]
movsd qword [eax + 0x30], xmm0
mov eax, dword [0x1035678c]
movss xmm3, dword [edi + 4]
movss xmm4, dword [edi + 8]
movss xmm2, dword [edi + 0xc]
subss xmm3, dword [eax + 0x3f90]
subss xmm4, dword [eax + 0x3f94]
subss xmm2, dword [eax + 0x3f98]
movaps xmm0, xmm3
mulss xmm0, xmm3
xorps xmm5, xmm5
addss xmm0, xmm5
movaps xmm1, xmm4
mulss xmm1, xmm4
addss xmm1, xmm0
xorps xmm0, xmm0
cvtss2sd xmm0, xmm1
xorps xmm1, xmm1
ucomisd xmm0, xmm1
jb 0x10021274
sqrtsd xmm0, xmm0
jmp 0x100212b1
sub esp, 8
movsd qword [esp], xmm0
movaps xmmword [esi + 0x20], xmm2
movss dword [esi + 8], xmm3
movss dword [esi + 4], xmm4
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrt
xorps xmm5, xmm5
movss xmm4, dword [esi + 4]
movss xmm3, dword [esi + 8]
movaps xmm2, xmmword [esi + 0x20]
add esp, 8
fstp qword [esi + 0x138]
movsd xmm0, qword [esi + 0x138]
cvtsd2ss xmm0, xmm0
ucomiss xmm0, xmm5
jbe 0x10021347
xorps xmm2, xmmword [0x101540d0]
cvtss2sd xmm0, xmm0
xorps xmm1, xmm1
cvtss2sd xmm1, xmm2
xorps xmm2, xmm2
cvtss2sd xmm2, xmm3
movsd qword [esi + 0x20], xmm2
xorps xmm2, xmm2
cvtss2sd xmm2, xmm4
movsd qword [esi + 8], xmm2
sub esp, 0x10
movsd qword [esp + 8], xmm0
movsd qword [esp], xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_atan2
add esp, 0x10
fstp qword [esi + 0x130]
sub esp, 0x10
movsd xmm0, qword [esi + 0x20]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [esi + 8]
movsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_atan2
add esp, 0x10
fstp qword [esi + 0x128]
movsd xmm0, qword [esi + 0x130]
movhpd xmm0, qword [esi + 0x128]
cvtpd2ps xmm0, xmm0
mulps xmm0, xmmword [0x10154c80]
jmp 0x1002135b
xorps xmm0, xmm0
xor eax, eax
ucomiss xmm2, xmm0
seta al
movss xmm0, dword [eax*4 + 0x10154c70]
mov eax, dword [esi + 0x14]
movlps qword [eax + 0x12c], xmm0
mov dword [eax + 0x134], 0
mov ecx, dword [0x1035678c]
mov byte [ecx + 0x3f86], 0
cmp byte [ecx + 0x3f85], 0
je 0x10022804
mov eax, dword [ecx]
mov edx, dword [ecx + 0x18c]
mov eax, dword [eax]
cmp byte [edx + eax], 0
je 0x100214ec
mov eax, dword [ebp + 8]
add eax, 0x30
mov dword [esi + 4], eax
mov ecx, dword [esi + 0x14]
jmp 0x10021691
mov eax, dword [eax + 0x1c]
cmp dword [eax + edx], 0
jle 0x100211eb
lea ecx, [edx + 8]
mov dword [esi + 0x20], edx
mov eax, dword [edx + 8]
mov eax, dword [eax + 0x24]
mov dword [esi + 0x33b8], 0
call eax
test al, al
mov edi, dword [esi]
mov ebx, dword [esi + 0x20]
jne 0x100211eb
mov edi, dword [0x1035678c]
mov eax, dword [edi + 0x84]
mov eax, dword [eax + ebx + 8]
mov dword [esi + 0x3394], eax
mov eax, dword [edi + 0x84]
mov eax, dword [eax + ebx + 0xc]
mov dword [esi + 0x3398], eax
mov byte [esi + 0x33a0], 0
mov ecx, dword [ebx + 0x290c]
mov dword [esi + 0x3390], ecx
mov eax, dword [ebx + 0x2900]
test eax, eax
je 0x10021441
shl ecx, 4
lea ecx, [ecx + ecx*2]
push ecx
push eax
lea eax, [esi + 0x390]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov byte [esi + 0x33a0], 1
mov eax, dword [edi + 0x18]
mov eax, dword [ebx + eax + 4]
mov dword [esi + 0x339c], eax
mov eax, dword [edi + 0x2c]
mov ecx, dword [eax + ebx + 8]
lea edx, [esi + 0x35c]
mov dword [edx + 0x18], ecx
movsd xmm0, qword [eax + ebx]
movsd qword [edx + 0x10], xmm0
mov eax, dword [ebx + 0x3b0]
mov dword [edx + 0x24], eax
movsd xmm0, qword [ebx + 0x3a8]
movsd qword [edx + 0x1c], xmm0
mov eax, dword [edi + 0x54]
movsd xmm0, qword [eax + ebx]
movsd qword [esi + 0x350], xmm0
mov eax, dword [eax + ebx + 8]
mov dword [esi + 0x358], eax
mov eax, dword [edi + 0x58]
mov ecx, dword [eax + ebx + 8]
mov dword [edx + 8], ecx
movsd xmm0, qword [eax + ebx]
movsd qword [edx], xmm0
mov eax, dword [edi + 0x34]
mov ecx, dword [eax + ebx + 8]
lea edx, [esi + 0x384]
mov dword [edx + 8], ecx
movsd xmm0, qword [eax + ebx]
movsd qword [edx], xmm0
mov eax, dword [edi + 0x1ac]
mov eax, dword [eax + ebx]
test eax, eax
mov edi, dword [esi]
je 0x100211eb
movss xmm0, dword [eax + 0x80]
movss dword [esi + 0x368], xmm0
jmp 0x100211eb
mov eax, dword [0x103567b4]
mov ecx, dword [ecx + 0xb0]
mov edx, dword [eax + 0xc]
movzx edx, word [ecx + edx]
add edx, 0xfffffff8
cmp dx, 0x20
jae 0x10021515
mov cl, 1
mov edi, 0xc0000009
bt edi, edx
mov edi, dword [esi]
jb 0x10021522
mov eax, dword [eax + 0x10]
cmp dword [eax + 0xc8], 5
sete cl
mov eax, dword [ebp + 8]
lea edx, [eax + 0x30]
mov eax, dword [eax + 0x30]
test al, 2
mov dword [esi + 4], edx
jne 0x1002168e
test cl, cl
je 0x1002168e
mov ecx, dword [esi + 0x14]
cmp byte [ecx + 0xbc], 0
je 0x10021691
or eax, 0x800
mov dword [edx], eax
jmp 0x10021691
mov eax, dword [eax + 0x1c]
cmp dword [eax + edx], 0
jle 0x10021206
mov eax, dword [edi + 0x18]
mov dword [esi + 8], eax
lea ecx, [edx + 8]
mov dword [esi + 0x20], edx
mov eax, dword [edx + 8]
mov eax, dword [eax + 0x24]
mov dword [esi + 0x33b8], 0
call eax
test al, al
mov edi, dword [esi]
mov ebx, dword [esi + 0x20]
jne 0x10021206
mov edi, dword [esi + 8]
cmp byte [edi + 0x6432], 0
je 0x100215d6
mov eax, dword [ebx + 0x2900]
test eax, eax
je 0x100215d6
mov ecx, dword [ebx + 0x290c]
shl ecx, 4
lea ecx, [ecx + ecx*2]
push ecx
push edi
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [0x1035678c]
mov ecx, dword [eax + 0x274]
mov ecx, dword [ecx + 0xa]
mov ecx, dword [ecx]
mov eax, dword [eax + 0x18]
mov dword [ebx + eax + 4], ecx
mov eax, dword [0x1035678c]
mov ecx, dword [eax + 0x2c]
mov edx, dword [edi + 0x6384]
mov dword [ecx + ebx + 8], edx
movsd xmm0, qword [edi + 0x637c]
movsd qword [ecx + ebx], xmm0
mov ecx, dword [edi + 0x6390]
mov dword [ebx + 0x3b0], ecx
lea edx, [edi + 0x637c]
movsd xmm0, qword [edi + 0x6388]
movsd qword [ebx + 0x3a8], xmm0
mov ecx, ebx
push edx
call dword [eax + 0x270]
mov ecx, dword [esi + 0x20]
mov eax, dword [ecx]
call dword [eax + 0xc]
test eax, eax
je 0x1002164b
mov ecx, dword [esi + 8]
lea edx, [ecx + 0x63b0]
lea edi, [ecx + 0x63e0]
mov ebx, dword [0x1035678c]
mov ecx, eax
push edi
push edx
call dword [ebx + 0x280]
mov eax, dword [esi + 8]
movss xmm0, dword [eax + 0x63bc]
mov dword [esi + 0x140], 0
movss dword [esi + 0x144], xmm0
mov dword [esi + 0x148], 0
mov eax, dword [0x1035678c]
mov ecx, dword [esi + 0x20]
lea edx, [esi + 0x140]
push edx
call dword [eax + 0x26c]
mov edi, dword [esi]
jmp 0x10021206
mov ecx, dword [esi + 0x14]
mov dword [esi + 8], esp
lea ebx, [ecx + 0x12c]
push eax
sub esp, 0x10
mov eax, esp
mov ecx, dword [edi + 0x14]
mov dword [esi + 0x20], ecx
xorps xmm0, xmm0
movlps qword [eax + 4], xmm0
mov edx, dword [edi + 0x1c]
test edx, edx
je 0x100216ca
lock inc dword [edx + 4]
mov edx, dword [edi + 0x1c]
mov ecx, dword [esi + 0x3c]
mov dword [esi + 0x33b8], 0
jmp 0x100216ce
xor edx, edx
mov ecx, edi
mov edi, dword [edi + 0x18]
mov dword [eax + 4], edi
mov dword [eax + 8], edx
mov dword [esi], ecx
mov edx, dword [ecx]
mov dword [eax], edx
mov dword [esi + 0x100], ebx
mov dword [eax + 0xc], ebx
mov ecx, dword [esi + 0x20]
mov dword [eax + 0x10], ecx
mov dword [esi + 0x33b8], 0
call fcn.10024650
mov edi, eax
mov esp, dword [esi + 8]
mov eax, dword [0x103567b4]
mov ecx, dword [eax + 0xc]
mov eax, dword [0x1035678c]
mov edx, dword [eax + 0xb0]
cmp word [edx + ecx], 0x1f
jne 0x10021724
movss xmm1, dword [0x10154c90]
jmp case.default.0x10021930
mov ecx, dword [eax]
mov edx, dword [ecx]
xorps xmm1, xmm1
test edx, edx
je case.default.0x10021930
mov ecx, dword [eax + 0x128]
cmp byte [ecx + edx], 0
je 0x100218e2
mov ecx, dword [esi]
xorps xmm0, xmm0
cvtsi2ss xmm0, edi
ucomiss xmm1, xmm0
jbe 0x10021788
mov edx, dword [ecx]
test edx, edx
je 0x10021768
mov eax, dword [0x1035678c]
mov ecx, dword [eax + 0x128]
cmp byte [ecx + edx], 0
je 0x10021944
mov eax, dword [esi + 4]
test byte [eax], 2
jne 0x1002285d
call fcn.10024390
inc eax
mov ecx, dword [esi + 0x14]
mov dword [ecx + 0x138], eax
jmp 0x1002285d
lea ecx, [esi + 0x2a0]
push 1
mov dword [esi + 0x18], edi
call fcn.10029c90
xorps xmm0, xmm0
movaps xmmword [esi + 0x1e0], xmm0
movaps xmmword [esi + 0x1d0], xmm0
movaps xmmword [esi + 0x1c0], xmm0
movaps xmmword [esi + 0x1b0], xmm0
movaps xmmword [esi + 0x1a0], xmm0
movaps xmmword [esi + 0x190], xmm0
movaps xmmword [esi + 0x180], xmm0
movaps xmmword [esi + 0x170], xmm0
movaps xmmword [esi + 0x160], xmm0
movaps xmmword [esi + 0x150], xmm0
movaps xmmword [esi + 0x140], xmm0
mov dword [esi + 0x1f1], 0
mov dword [esi + 0x1ed], 0
movups xmmword [esi + 0x1f8], xmm0
movups xmmword [esi + 0x208], xmm0
movups xmmword [esi + 0x218], xmm0
movups xmmword [esi + 0x228], xmm0
movups xmmword [esi + 0x238], xmm0
movups xmmword [esi + 0x248], xmm0
movups xmmword [esi + 0x258], xmm0
movups xmmword [esi + 0x268], xmm0
mov dword [esi + 0x27a], 0
mov dword [esi + 0x276], 0
movaps xmmword [esi + 0x280], xmm0
mov byte [esi + 0x290], 0
mov eax, dword [0x10356820]
mov dword [esi + 0x20], eax
mov eax, dword [esi]
mov ecx, dword [eax]
mov eax, dword [ecx + 8]
add ecx, 8
mov eax, dword [eax + 0x28]
mov dword [esi + 0x33b8], 1
call eax
mov ecx, dword [esi + 0x20]
mov edx, dword [ecx]
lea edi, [esi + 0x140]
push edi
push eax
call dword [edx + 0x20]
mov byte [esi + 0x20], al
xorps xmm0, xmm0
movaps xmmword [esi + 0xe0], xmm0
mov dword [esi + 0xf0], 0
mov dword [esi + 0xf4], 0xf
mov eax, dword [esi]
mov eax, dword [eax + 0x18]
mov eax, dword [eax + 0x6370]
cmp eax, 0xb
ja case.0x100218bc.9
jmp dword [eax*4 + 0x10155544]
mov dword [esi + 0x33b8], 2
lea ecx, [esi + 0xe0]
push str.no_fake
call fcn.10029df0
jmp 0x10021b9c
mov ecx, dword [eax + 0x1c]
cmp dword [ecx + edx], 0
jle case.default.0x10021930
mov ecx, dword [0x10356824]
mov eax, dword [eax + 0x11c]
mov dword [esi + 0x18], edi
mov edi, dword [ecx]
push dword [eax + edx]
call dword [edi + 0x10]
mov edi, dword [esi + 0x18]
test eax, eax
xorps xmm1, xmm1
je case.default.0x10021930
mov ecx, dword [0x1035678c]
mov ecx, dword [ecx + 0xb0]
movzx eax, word [ecx + eax]
dec eax
cmp eax, 0x3f
ja case.default.0x10021930
mov ecx, dword [esi]
jmp dword [eax*4 + 0x10155444]
mov eax, dword [0x10356800]
add eax, 0x50
jmp 0x100229ea
mov eax, dword [eax + 0x1c]
cmp dword [eax + edx], 0
jle 0x10021768
lea ecx, [edx + 8]
mov eax, dword [edx + 8]
mov dword [esi], edx
call dword [eax + 0x24]
mov edi, dword [esi]
test al, al
jne 0x10021768
mov ecx, dword [esi + 0x3394]
mov eax, dword [0x1035678c]
mov edx, dword [eax + 0x84]
mov dword [edx + edi + 8], ecx
mov ecx, dword [esi + 0x3398]
mov edx, dword [eax + 0x84]
mov dword [edx + edi + 0xc], ecx
cmp byte [esi + 0x33a0], 0
je 0x100219bb
mov eax, dword [esi + 0x3390]
shl eax, 4
lea eax, [eax + eax*2]
push eax
lea eax, [esi + 0x390]
push eax
push dword [edi + 0x2900]
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [0x1035678c]
mov ecx, dword [esi + 0x339c]
mov eax, dword [eax + 0x18]
mov dword [edi + eax + 4], ecx
mov eax, dword [0x1035678c]
mov eax, dword [eax + 0x2c]
lea edx, [esi + 0x35c]
mov ecx, dword [edx + 0x18]
mov dword [eax + edi + 8], ecx
movsd xmm0, qword [edx + 0x10]
movsd qword [eax + edi], xmm0
mov eax, dword [edx + 0x24]
mov dword [edi + 0x3b0], eax
movsd xmm0, qword [edx + 0x1c]
movsd qword [edi + 0x3a8], xmm0
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0xc]
mov ecx, dword [esi]
test eax, eax
je 0x10021a28
mov edx, dword [0x1035678c]
mov ecx, eax
lea eax, [esi + 0x35c]
push eax
lea eax, [esi + 0x350]
push eax
call dword [edx + 0x280]
mov ecx, dword [esi]
movss xmm0, dword [esi + 0x368]
mov dword [esi + 0x140], 0
movss dword [esi + 0x144], xmm0
mov dword [esi + 0x148], 0
mov eax, dword [0x1035678c]
lea edx, [esi + 0x140]
push edx
call dword [eax + 0x26c]
mov ecx, dword [esi]
mov eax, dword [0x1035678c]
lea edx, [esi + 0x384]
push edx
call dword [eax + 0x270]
jmp 0x10021768
mov dword [esi + 0x33b8], 2
lea ecx, [esi + 0xe0]
push str.last_move
call fcn.10029df0
jmp 0x10021b9c
mov dword [esi + 0x33b8], 2
lea ecx, [esi + 0xe0]
push str.anti_fs
call fcn.10029df0
jmp 0x10021b9c
mov dword [esi + 0x33b8], 2
lea ecx, [esi + 0xe0]
push str.flick
call fcn.10029df0
jmp 0x10021b9c
mov dword [esi + 0x33b8], 2
lea ecx, [esi + 0xe0]
push str.brute___no_move_data__
call fcn.10029df0
jmp 0x10021b9c
mov dword [esi + 0x33b8], 2
lea ecx, [esi + 0xe0]
push str.anti_fs___no_move_data__
call fcn.10029df0
jmp 0x10021b9c
mov dword [esi + 0x33b8], 2
lea ecx, [esi + 0xe0]
push 0x1019a61b
call fcn.10029df0
jmp 0x10021b9c
mov dword [esi + 0x33b8], 2
lea ecx, [esi + 0xe0]
push str.lby_delta
call fcn.10029df0
jmp 0x10021b9c
mov dword [esi + 0x33b8], 2
lea ecx, [esi + 0xe0]
push str.brute
call fcn.10029df0
jmp 0x10021b9c
mov dword [esi + 0x33b8], 2
lea ecx, [esi + 0xe0]
push 0x1019a99e
call fcn.10029df0
jmp 0x10021b9c
mov dword [esi + 0x33b8], 2
lea ecx, [esi + 0xe0]
push str.in_air
call fcn.10029df0
cmp byte [esi + 0x20], 0
je 0x1002235f
mov eax, 0x615543fe
mov ecx, 0x8eabdd01
mov dword [esi + 0xa4], ecx
mov dword [esi + 0xa0], eax
mov eax, 0x848d34db
mov ecx, 0xcebb3ab1
mov dword [esi + 0xac], ecx
mov dword [esi + 0xa8], eax
mov eax, 0x1d791347
mov ecx, 0x4de941f0
mov dword [esi + 0xb4], ecx
mov dword [esi + 0xb0], eax
mov eax, 0x3f55023b
mov ecx, 0x4cdf8688
mov dword [esi + 0xbc], ecx
mov dword [esi + 0xb8], eax
mov eax, 0x3a641529
mov ecx, 0x2cc20a5b
mov dword [esi + 0xc4], ecx
mov dword [esi + 0xc0], eax
mov eax, 0x8fe20ae8
mov ecx, 0x3fb065c6
mov dword [esi + 0xcc], ecx
mov dword [esi + 0xc8], eax
mov eax, 0x53463a5
mov ecx, 0xedc5bc77
mov dword [esi + 4], ecx
mov dword [esi + 0x54], ecx
mov dword [esi + 8], eax
mov dword [esi + 0x50], eax
mov eax, 0xe1f91abe
mov ecx, 0x939b52d2
mov dword [esi + 0x1c], ecx
mov dword [esi + 0x5c], ecx
mov dword [esi + 0x20], eax
mov dword [esi + 0x58], eax
mov eax, 0x74157067
mov ecx, 0x6d9d2f95
mov dword [esi + 0x10c], ecx
mov dword [esi + 0x64], ecx
mov dword [esi + 0x110], eax
mov dword [esi + 0x60], eax
mov eax, 0x4b3a6a48
mov ecx, 0x6ce1aba8
mov dword [esi + 0x104], ecx
mov dword [esi + 0x6c], ecx
mov dword [esi + 0x108], eax
mov dword [esi + 0x68], eax
mov eax, 0x5e016759
mov ecx, 0x4baf6e7b
mov dword [esi + 0x74], ecx
mov dword [esi + 0x70], eax
mov eax, 0x3fb065c6
mov ecx, 0x8fe22ad2
mov dword [esi + 0x7c], eax
mov dword [esi + 0x78], ecx
lea eax, [esi + 0x50]
xor ecx, ecx
movaps xmm0, xmmword [esi + 0xa0]
xorps xmm0, xmmword [eax]
movaps xmmword [esi + 0xa0], xmm0
movaps xmm0, xmmword [esi + 0xb0]
xorps xmm0, xmmword [eax + 0x10]
movaps xmmword [esi + 0xb0], xmm0
movaps xmm0, xmmword [esi + 0xc0]
xorps xmm0, xmmword [eax + 0x20]
movaps xmmword [esi + 0xc0], xmm0
lea eax, [esi + 0x2b0]
lea ecx, [esi + 0xa0]
push ecx
push eax
call fcn.10029e70
add esp, 8
mov dword [esi + 0x38], eax
mov eax, dword [esi]
cvttss2si eax, dword [eax + 0x10]
push eax
lea eax, [esi + 0x50]
push eax
call fcn.100183f0
add esp, 8
cmp dword [esi + 0x64], 0x10
lea eax, [esi + 0x50]
jb 0x10021d21
mov eax, dword [esi + 0x50]
mov dword [esi + 0x33b8], 7
push eax
push dword [esi + 0x38]
call fcn.10029e70
add esp, 8
mov edi, 0x5141f85
mov ebx, 0xedc5bc77
lea ecx, [esi + 0x40]
xor edx, edx
mov dword [esi + 0xd0], ebx
mov dword [esi + 0x94], ebx
mov dword [esi + 0x38], edi
mov dword [esi + 0x90], edi
mov edx, dword [esi + 0x20]
mov dword [esi + 0x98], edx
mov ebx, dword [esi + 0x1c]
mov dword [esi + 0x9c], ebx
mov edi, dword [esi + 4]
mov dword [esi + 0x44], edi
mov edi, dword [esi + 8]
mov dword [esi + 0x40], edi
mov dword [esi + 0x4c], ebx
mov dword [esi + 0x48], edx
movaps xmm0, xmmword [esi + 0x90]
xorps xmm0, xmmword [ecx]
movaps xmmword [esi + 0x90], xmm0
mov dword [esi + 0x8c], 0
lea ecx, [esi + 0x90]
push ecx
push eax
call fcn.10029e70
add esp, 8
lea edi, [esi + 0x50]
mov ecx, edi
call fcn.10007360
mov eax, 0x250e00cd
mov ecx, 0xedc5bc77
mov dword [esi + 0x44], ecx
mov dword [esi + 0x40], eax
mov eax, edi
mov ecx, dword [esi + 0x8c]
mov edi, dword [esi + 0x1c]
mov dword [esi + 0x4c], edi
mov ecx, dword [esi + 0x20]
mov dword [esi + 0x48], ecx
mov edx, dword [esi + 4]
mov dword [esi + 0x54], edx
mov edx, dword [esi + 8]
mov dword [esi + 0x50], edx
mov dword [esi + 0x5c], edi
mov dword [esi + 0x58], ecx
movaps xmm0, xmmword [esi + 0x40]
xorps xmm0, xmmword [eax]
movaps xmmword [esi + 0x40], xmm0
mov dword [esi + 0x33b8], 2
lea eax, [esi + 0x40]
push eax
lea eax, [esi + 0x2b0]
push eax
call fcn.10029e70
add esp, 8
mov dword [esi + 0x8c], eax
push dword [esi + 0x18]
lea eax, [esi + 0x50]
push eax
call fcn.100183f0
add esp, 8
cmp dword [esi + 0x64], 0x10
lea eax, [esi + 0x50]
jb 0x10021e33
mov eax, dword [esi + 0x50]
mov dword [esi + 0x33b8], 6
push eax
push dword [esi + 0x8c]
call fcn.10029e70
add esp, 8
mov edi, dword [esi + 0x20]
xor ecx, ecx
lea edx, [esi + 0xa0]
mov ecx, dword [esi + 0x38]
mov dword [esi + 0x90], ecx
mov ecx, dword [esi + 0xd0]
mov dword [esi + 0x94], ecx
mov dword [esi + 0x98], edi
mov ecx, dword [esi + 0x1c]
mov dword [esi + 0x9c], ecx
mov ebx, dword [esi + 4]
mov dword [esi + 0xa4], ebx
mov ebx, dword [esi + 8]
mov dword [esi + 0xa0], ebx
mov dword [esi + 0xac], ecx
mov dword [esi + 0xa8], edi
movaps xmm0, xmmword [esi + 0x90]
xorps xmm0, xmmword [edx]
mov dword [esi + 0x8c], 0
movaps xmmword [esi + 0x90], xmm0
lea ecx, [esi + 0x90]
push ecx
push eax
call fcn.10029e70
mov ebx, dword [esi + 0x20]
add esp, 8
lea edi, [esi + 0x50]
mov ecx, edi
call fcn.10007360
mov eax, 0x605113d6
mov ecx, 0x89f7e313
mov dword [esi + 0x44], ecx
mov dword [esi + 0x40], eax
mov eax, 0xe1f93a84
mov ecx, 0x939b52d2
mov dword [esi + 0x4c], ecx
mov dword [esi + 0x48], eax
mov dword [esi + 0x18], edi
mov ecx, dword [esi + 0x8c]
mov ecx, dword [esi + 4]
mov dword [esi + 0x54], ecx
mov ecx, dword [esi + 8]
mov dword [esi + 0x50], ecx
mov ecx, dword [esi + 0x1c]
mov dword [esi + 0x5c], ecx
mov dword [esi + 0x58], ebx
movaps xmm0, xmmword [esi + 0x40]
xorps xmm0, xmmword [edi]
movaps xmmword [esi + 0x40], xmm0
mov dword [esi + 0x33b8], 2
lea eax, [esi + 0x40]
push eax
lea eax, [esi + 0x2b0]
push eax
call fcn.10029e70
add esp, 8
mov dword [esi + 0x8c], eax
mov eax, dword [esi]
mov eax, dword [eax + 0x18]
movss xmm0, dword [eax + 0x6420]
movss xmm1, dword [eax + 0x6424]
mulss xmm0, xmm0
xorps xmm2, xmm2
addss xmm2, xmm0
mulss xmm1, xmm1
addss xmm1, xmm2
xorps xmm0, xmm0
cvtss2sd xmm0, xmm1
xorps xmm1, xmm1
ucomisd xmm0, xmm1
jb 0x10021f7b
sqrtsd xmm0, xmm0
jmp 0x10021f99
sub esp, 8
movsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrt
add esp, 8
fstp qword [esi + 0x120]
movsd xmm0, qword [esi + 0x120]
cvtsd2ss xmm0, xmm0
cvttss2si eax, xmm0
push eax
lea eax, [esi + 0x50]
push eax
call fcn.100183f0
add esp, 8
mov ecx, dword [esi + 0x8c]
cmp dword [esi + 0x64], 0x10
jb 0x10021fc0
mov eax, dword [esi + 0x50]
mov dword [esi + 0x18], eax
mov dword [esi + 0x33b8], 5
push dword [esi + 0x18]
push ecx
call fcn.10029e70
add esp, 8
mov edi, dword [esi + 0x20]
xor ecx, ecx
lea edx, [esi + 0xa0]
mov ecx, dword [esi + 0x38]
mov dword [esi + 0x90], ecx
mov ecx, dword [esi + 0xd0]
mov dword [esi + 0x94], ecx
mov dword [esi + 0x98], edi
mov ebx, dword [esi + 0x1c]
mov dword [esi + 0x9c], ebx
mov ecx, dword [esi + 4]
mov dword [esi + 0xa4], ecx
mov ecx, dword [esi + 8]
mov dword [esi + 0xa0], ecx
mov dword [esi + 0xac], ebx
mov dword [esi + 0xa8], edi
movaps xmm0, xmmword [esi + 0x90]
xorps xmm0, xmmword [edx]
mov dword [esi + 0x18], 0
movaps xmmword [esi + 0x90], xmm0
lea ecx, [esi + 0x90]
push ecx
push eax
call fcn.10029e70
mov ebx, dword [esi + 0x20]
add esp, 8
lea edi, [esi + 0x50]
mov ecx, edi
call fcn.10007360
mov eax, 0x67400acd
mov ecx, 0xcdffc418
mov dword [esi + 0x44], ecx
mov dword [esi + 0x40], eax
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x1c]
mov dword [esi + 0x4c], ecx
mov dword [esi + 0x48], ebx
mov eax, dword [esi + 4]
mov dword [esi + 0x54], eax
mov eax, dword [esi + 8]
mov dword [esi + 0x50], eax
mov dword [esi + 0x5c], ecx
mov dword [esi + 0x58], ebx
movaps xmm0, xmmword [esi + 0x40]
xorps xmm0, xmmword [edi]
movaps xmmword [esi + 0x40], xmm0
mov dword [esi + 0x33b8], 2
lea eax, [esi + 0x40]
push eax
lea eax, [esi + 0x2b0]
push eax
call fcn.10029e70
add esp, 8
mov dword [esi + 0x18], eax
mov eax, dword [esi]
mov ecx, dword [eax + 0x14]
mov eax, str.hands_legs
cmp ecx, 7
ja 0x100220c7
mov eax, dword [ecx*4 + 0x10154b24]
lea ecx, [esi + 0x50]
push eax
call fcn.10015550
mov eax, dword [esi + 0x18]
cmp dword [esi + 0x64], 0x10
lea ecx, [esi + 0x50]
jb 0x100220df
mov ecx, dword [esi + 0x50]
mov dword [esi + 0x33b8], 4
push ecx
push eax
call fcn.10029e70
add esp, 8
mov edi, dword [esi + 0x20]
lea edx, [esi + 0xa0]
xor ecx, ecx
mov ecx, dword [esi + 0x38]
mov dword [esi + 0x90], ecx
mov ecx, dword [esi + 0xd0]
mov dword [esi + 0x94], ecx
mov dword [esi + 0x98], edi
mov ecx, dword [esi + 0x1c]
mov dword [esi + 0x9c], ecx
mov ebx, dword [esi + 4]
mov dword [esi + 0xa4], ebx
mov ebx, dword [esi + 8]
mov dword [esi + 0xa0], ebx
mov dword [esi + 0xac], ecx
mov dword [esi + 0xa8], edi
movaps xmm0, xmmword [esi + 0x90]
xorps xmm0, xmmword [edx]
mov dword [esi + 0x18], 0
movaps xmmword [esi + 0x90], xmm0
lea ecx, [esi + 0x90]
push ecx
push eax
call fcn.10029e70
mov ebx, dword [esi + 0x20]
add esp, 8
lea edi, [esi + 0x50]
mov ecx, edi
call fcn.10007360
mov eax, 0x73580cd6
mov ecx, 0x88a89c12
mov dword [esi + 0xa4], ecx
mov dword [esi + 0xa0], eax
mov eax, 0x859672ca
mov ecx, 0x939b72e8
mov dword [esi + 0xac], ecx
mov dword [esi + 0xa8], eax
mov ecx, dword [esi + 0x18]
mov ecx, dword [esi + 4]
mov dword [esi + 0x54], ecx
mov ecx, dword [esi + 8]
mov dword [esi + 0x50], ecx
mov ecx, dword [esi + 0x1c]
mov dword [esi + 0x5c], ecx
mov dword [esi + 0x58], ebx
movaps xmm0, xmmword [esi + 0xa0]
xorps xmm0, xmmword [edi]
movaps xmmword [esi + 0xa0], xmm0
mov dword [esi + 0x33b8], 2
lea eax, [esi + 0xa0]
push eax
lea eax, [esi + 0x2b0]
push eax
call fcn.10029e70
add esp, 8
cmp dword [esi + 0xf4], 0x10
jb 0x100221fb
mov ecx, dword [esi + 0xe0]
jmp 0x10022201
lea ecx, [esi + 0xe0]
push ecx
push eax
call fcn.10029e70
add esp, 8
mov ecx, dword [esi + 0x38]
mov dword [esi + 0x40], ecx
mov ecx, dword [esi + 0xd0]
mov dword [esi + 0x44], ecx
lea ecx, [esi + 0x50]
xor edx, edx
mov edi, dword [esi + 0x20]
mov dword [esi + 0x48], edi
mov ebx, dword [esi + 0x1c]
mov dword [esi + 0x4c], ebx
mov edx, dword [esi + 4]
mov dword [esi + 0x54], edx
mov edx, dword [esi + 8]
mov dword [esi + 0x50], edx
mov dword [esi + 0x5c], ebx
mov dword [esi + 0x58], edi
movaps xmm0, xmmword [esi + 0x40]
xorps xmm0, xmmword [ecx]
mov dword [esi + 0x38], 0
movaps xmmword [esi + 0x40], xmm0
lea ecx, [esi + 0x40]
push ecx
push eax
call fcn.10029e70
add esp, 8
mov eax, 0x6a5806d3
mov ecx, 0x94b1d514
mov dword [esi + 0xa4], ecx
mov dword [esi + 0xa0], eax
mov eax, 0x808d699e
mov ecx, 0xb3a137b5
mov dword [esi + 0xac], ecx
mov dword [esi + 0xa8], eax
mov eax, dword [esi + 4]
mov dword [esi + 0x54], eax
mov eax, dword [esi + 8]
mov dword [esi + 0x50], eax
mov eax, dword [esi + 0x1c]
mov dword [esi + 0x5c], eax
mov eax, dword [esi + 0x20]
mov dword [esi + 0x58], eax
mov eax, dword [esi + 0x10c]
mov dword [esi + 0xb4], eax
mov dword [esi + 0x64], eax
mov eax, dword [esi + 0x110]
mov dword [esi + 0xb0], eax
mov dword [esi + 0x60], eax
mov eax, dword [esi + 0x104]
mov dword [esi + 0xbc], eax
mov dword [esi + 0x6c], eax
mov eax, dword [esi + 0x108]
mov dword [esi + 0xb8], eax
mov dword [esi + 0x68], eax
lea eax, [esi + 0x50]
mov ecx, dword [esi + 0x38]
movaps xmm0, xmmword [esi + 0xa0]
xorps xmm0, xmmword [eax]
movaps xmmword [esi + 0xa0], xmm0
movaps xmm0, xmmword [esi + 0xb0]
xorps xmm0, xmmword [eax + 0x10]
movaps xmmword [esi + 0xb0], xmm0
lea eax, [esi + 0xa0]
push eax
lea eax, [esi + 0x2b0]
push eax
call fcn.10029e70
add esp, 8
mov dword [esi + 0x20], eax
mov eax, dword [esi]
mov eax, dword [eax + 0x18]
push dword [eax + 0x635c]
lea eax, [esi + 0x50]
push eax
call fcn.100183f0
add esp, 8
cmp dword [esi + 0x64], 0x10
lea eax, [esi + 0x50]
jb 0x10022341
mov eax, dword [esi + 0x50]
mov dword [esi + 0x33b8], 3
push eax
push dword [esi + 0x20]
call fcn.10029e70
add esp, 8
lea ecx, [esi + 0x50]
call fcn.10007360
mov eax, dword [0x1035678c]
mov byte [eax + 0x3f86], 1
mov byte [eax + 0x3f69], 0
cmp byte [0x103569b8], 0
je 0x10022a3e
mov edi, dword [0x10356804]
movss xmm0, dword [eax + 0x3f50]
addss xmm0, dword [eax + 0x3f4c]
mov eax, dword [0x1035679c]
bswap eax
mov edx, dword [0x103567a0]
add edx, eax
mov ecx, dword [0x103567a4]
ror edx, cl
movss xmm1, dword [edx]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
mov ecx, dword [0x103567e0]
mov ecx, dword [ecx + 0x20]
mov edx, dword [esi + 0x3c]
mov dword [esi + 0x20], edx
mov edx, dword [edx + 0x20]
mov dword [esi + 0x40], eax
mov dword [esi + 0x90], ecx
mov eax, 0x3f90
add eax, dword [0x1035678c]
mov dword [esi + 0x11c], edx
movss dword [esi + 0x50], xmm0
movss dword [esi + 0xa0], xmm1
mov dword [esi + 0x33b8], 2
lea edx, [esi + 0x50]
lea ebx, [esi + 0x90]
mov dword [esi], edi
mov ecx, edi
push edx
lea edx, [esi + 0xa0]
push edx
lea edx, [esi + 0x40]
push edx
push ebx
lea edx, [esi + 0x11c]
push edx
push eax
call fcn.1002ba50
mov ebx, dword [esi]
cmp dword [ebx + 0x10], 0x80
jb 0x1002249c
mov eax, dword [ebx + 8]
dec eax
and eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 4]
mov edi, dword [ecx + eax*4]
mov eax, dword [edi + 0x5c]
cmp eax, 0x10
jb 0x10022472
mov ecx, dword [edi + 0x48]
lea ebx, [eax + 1]
cmp ebx, 0x1000
jb 0x10022466
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x10022b28
add eax, 0x24
mov ebx, eax
mov ecx, edx
push ebx
push ecx
call fcn.100f6c02
add esp, 8
mov ebx, dword [esi]
movsd xmm0, qword [0x10154070]
movsd qword [edi + 0x58], xmm0
mov byte [edi + 0x48], 0
add edi, 0xc
mov ecx, edi
call fcn.1001ca10
mov eax, dword [ebx + 0xc]
inc eax
xor ecx, ecx
dec dword [ebx + 0x10]
cmovne ecx, eax
mov dword [ebx + 0xc], ecx
lea ecx, [esi + 0x2a0]
lea eax, [esi + 0x50]
push eax
call fcn.1002a160
mov eax, dword [0x10356804]
mov ecx, dword [eax + 0xc]
mov edx, dword [eax + 0x10]
add ecx, edx
dec ecx
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
dec eax
and eax, ecx
mov eax, dword [edx + eax*4]
lea edi, [eax + 0x48]
lea ecx, [esi + 0x50]
cmp edi, ecx
je 0x1002251f
mov eax, dword [eax + 0x5c]
cmp eax, 0x10
jb 0x10022506
mov ecx, dword [edi]
lea ebx, [eax + 1]
cmp ebx, 0x1000
jb 0x100224fc
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x10022b28
add eax, 0x24
mov ebx, eax
mov ecx, edx
push ebx
push ecx
call fcn.100f6c02
add esp, 8
movsd xmm0, qword [esi + 0x60]
movsd qword [edi + 0x10], xmm0
movups xmm0, xmmword [esi + 0x50]
movups xmmword [edi], xmm0
mov ebx, dword [esi + 0x100]
jmp 0x1002255d
mov eax, dword [esi + 0x64]
cmp eax, 0x10
mov ebx, dword [esi + 0x100]
jb 0x1002255d
mov ecx, dword [esi + 0x50]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x10022553
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x10022b28
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.100f6c02
add esp, 8
mov edi, dword [ebp + 8]
or byte [edi + 0x30], 1
mov eax, dword [0x1035678c]
mov byte [eax + 0x3f40], 1
mov byte [eax + 0x316], 1
mov ecx, dword [esi + 0x20]
mov ecx, dword [ecx + 0x18]
movss xmm0, dword [ecx + 0x6360]
addss xmm0, dword [eax + 0x3f48]
mov eax, dword [0x1035679c]
bswap eax
mov edx, dword [0x103567a0]
add edx, eax
mov ecx, dword [0x103567a4]
ror edx, cl
divss xmm0, dword [edx + 0x20]
mov dword [esi + 0x50], 0x79967887
mov eax, dword [esi + 0x50]
bswap eax
mov dword [esi + 0x50], eax
add dword [esi + 0x50], 0x14c76987
mov eax, dword [esi + 0x50]
rol eax, 0xd
mov dword [esi + 0x50], eax
mov eax, dword [esi + 0x50]
cvtsi2ss xmm1, eax
mov dword [esi + 0x50], 0xe106bf1c
mov eax, dword [esi + 0x50]
bswap eax
mov dword [esi + 0x50], eax
add dword [esi + 0x50], 0x1bc0f920
mov eax, dword [esi + 0x50]
rol eax, 0xd
mov dword [esi + 0x50], eax
mov eax, dword [esi + 0x50]
cvtsi2ss xmm2, eax
divss xmm1, xmm2
addss xmm1, xmm0
cvttss2si eax, xmm1
mov dword [edi + 8], eax
movsd xmm0, qword [ebx]
movsd qword [edi + 0xc], xmm0
mov eax, dword [ebx + 8]
mov dword [edi + 0x14], eax
mov eax, dword [0x1035678c]
mov ecx, dword [eax]
mov eax, dword [eax + 0x15c]
mov dword [esi], eax
mov eax, dword [ecx]
mov dword [esi + 0x20], eax
mov ecx, dword [0x103569b4]
mov eax, dword [ecx]
call dword [eax + 0x30]
fstp dword [esi + 0x118]
movss xmm0, dword [esi + 0x118]
mov eax, dword [esi]
mov ecx, dword [esi + 0x20]
movss xmm1, dword [eax + ecx + 8]
mulss xmm1, xmm0
movsd xmm2, qword [eax + ecx]
shufps xmm0, xmm0, 0
mulps xmm0, xmm2
mov ebx, dword [ebp + 8]
movsd xmm2, qword [ebx + 0xc]
subps xmm2, xmm0
movlps qword [ebx + 0xc], xmm2
movss xmm0, dword [ebx + 0x14]
subss xmm0, xmm1
movss dword [ebx + 0x14], xmm0
sub esp, 8
movss dword [esp], xmm2
mov dword [esp + 4], 0x43b40000
mov edi, dword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_remainderf]
call edi
add esp, 8
fstp dword [ebx + 0xc]
movss xmm0, dword [ebx + 0x10]
sub esp, 8
movss dword [esp], xmm0
mov dword [esp + 4], 0x43b40000
call edi
add esp, 8
fstp dword [ebx + 0x10]
movss xmm0, dword [ebx + 0x14]
sub esp, 8
movss dword [esp], xmm0
mov dword [esp + 4], 0x43b40000
call edi
add esp, 8
fstp dword [esi + 0x114]
movss xmm0, dword [esi + 0x114]
movsd xmm1, qword [ebx + 0xc]
movaps xmm2, xmmword [0x10154ca0]
movaps xmm3, xmmword [0x10154cb0]
movaps xmm4, xmm3
cmpltps xmm4, xmm1
maxps xmm2, xmm1
andps xmm3, xmm4
andnps xmm4, xmm2
orps xmm4, xmm3
movlps qword [ebx + 0xc], xmm4
movss xmm1, dword [0x10154cc0]
maxss xmm1, xmm0
movss xmm2, dword [0x10154cc4]
movaps xmm3, xmm2
cmpltss xmm3, xmm0
movaps xmm0, xmm3
andnps xmm0, xmm1
andps xmm3, xmm2
orps xmm3, xmm0
movss dword [ebx + 0x14], xmm3
mov eax, dword [0x1035679c]
bswap eax
mov edx, dword [0x103567a0]
add edx, eax
mov ecx, dword [0x103567a4]
ror edx, cl
movss xmm0, dword [edx + 0x10]
mov eax, dword [0x1035678c]
movss dword [eax + 0x2e4], xmm0
mov ecx, dword [0x103567d8]
mov eax, dword [esi + 0x3c]
push dword [eax + 0x18]
mov dword [esi], eax
push dword [eax]
call fcn.100648c0
mov eax, dword [esi + 0xf4]
cmp eax, 0x10
jb 0x100227ae
mov ecx, dword [esi + 0xe0]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x100227a4
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x10022b28
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.100f6c02
add esp, 8
lea edi, [esi + 0x308]
mov eax, dword [esi + 0x2a0]
mov eax, dword [eax + 4]
mov dword [esi + eax + method.std::basic_stringstream_char__struct_std::char_traits_char___class_std::allocator_char__.virtual_0], vtable.std::basic_stringstream_char__struct_std::char_traits_char___class_std::allocator_char__.0
mov eax, dword [esi + 0x2a0]
mov eax, dword [eax + 4]
lea ecx, [eax - 0x68]
mov dword [esi + eax + 0x29c], ecx
lea ebx, [esi + 0x2b8]
mov dword [esi + method.std::basic_stringbuf_char__struct_std::char_traits_char___class_std::allocator_char__.virtual_0], vtable.std::basic_stringbuf_char__struct_std::char_traits_char___class_std::allocator_char__.0
mov ecx, ebx
call fcn.1002c0a0
mov ecx, ebx
call dword [sym.imp.MSVCP140.dll_public_virtual:_void___thiscall_std::basic_streambuf_char__struct_std::char_traits_char__::destructor_void_]
mov ecx, edi
call dword [sym.imp.MSVCP140.dll_public_virtual:_void___thiscall_std::ios_base::destructor_void_]
mov edi, dword [esi]
mov edx, dword [edi]
test edx, edx
je 0x1002281f
mov eax, dword [0x1035678c]
mov ecx, dword [eax + 0x128]
cmp byte [ecx + edx], 0
je 0x100228a3
mov eax, dword [esi + 0x14]
mov edi, dword [eax + 0x13c]
mov ebx, dword [eax + 0x140]
cmp edi, ebx
je 0x1002285d
nop word cs:[eax + eax]
mov ecx, edi
call fcn.1001ca10
add edi, 0x3c
cmp edi, ebx
jne 0x10022840
mov ecx, dword [esi + 0x14]
mov eax, dword [ecx + 0x13c]
mov dword [ecx + 0x140], eax
mov ebx, dword [esi + 0x3c]
test ebx, ebx
je 0x1002288d
mov edi, dword [ebx + 0x1c]
test edi, edi
je 0x10022884
lock dec dword [edi + 4]
jne 0x10022884
mov eax, dword [edi]
mov ecx, edi
call dword [eax]
lock dec dword [edi + 8]
jne 0x10022884
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
push ebx
call fcn.100f6bfd
add esp, 4
mov eax, dword [esi + 0x33b0]
mov dword fs:[0], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 8
mov eax, dword [eax + 0x1c]
cmp dword [eax + edx], 0
jle 0x1002281f
lea ecx, [edx + 8]
mov eax, dword [edx + 8]
mov eax, dword [eax + 0x24]
mov dword [esi + 0x33b8], 0
mov dword [esi], edx
call eax
mov edi, dword [esi]
test al, al
jne 0x1002281f
mov ecx, dword [esi + 0x3394]
mov eax, dword [0x1035678c]
mov edx, dword [eax + 0x84]
mov dword [edx + edi + 8], ecx
mov ecx, dword [esi + 0x3398]
mov edx, dword [eax + 0x84]
mov dword [edx + edi + 0xc], ecx
cmp byte [esi + 0x33a0], 0
je 0x10022926
mov eax, dword [esi + 0x3390]
shl eax, 4
lea eax, [eax + eax*2]
push eax
lea eax, [esi + 0x390]
push eax
push dword [edi + 0x2900]
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [0x1035678c]
mov ecx, dword [esi + 0x339c]
mov eax, dword [eax + 0x18]
mov dword [edi + eax + 4], ecx
mov eax, dword [0x1035678c]
mov eax, dword [eax + 0x2c]
lea edx, [esi + 0x35c]
mov ecx, dword [edx + 0x18]
mov dword [eax + edi + 8], ecx
movsd xmm0, qword [edx + 0x10]
movsd qword [eax + edi], xmm0
mov eax, dword [edx + 0x24]
mov dword [edi + 0x3b0], eax
movsd xmm0, qword [edx + 0x1c]
movsd qword [edi + 0x3a8], xmm0
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0xc]
mov ecx, dword [esi]
test eax, eax
je 0x10022993
mov edx, dword [0x1035678c]
mov ecx, eax
lea eax, [esi + 0x35c]
push eax
lea eax, [esi + 0x350]
push eax
call dword [edx + 0x280]
mov ecx, dword [esi]
movss xmm0, dword [esi + 0x368]
mov dword [esi + 0x140], 0
movss dword [esi + 0x144], xmm0
mov dword [esi + 0x148], 0
mov eax, dword [0x1035678c]
lea edx, [esi + 0x140]
push edx
call dword [eax + 0x26c]
mov ecx, dword [esi]
mov eax, dword [0x1035678c]
lea edx, [esi + 0x384]
push edx
call dword [eax + 0x270]
jmp 0x1002281f
mov eax, dword [0x10356800]
add eax, 0x4c
movss xmm1, dword [eax]
jmp case.0x10021930.5
mov dword [esi + 0x33b8], 0
call fcn.1002ad40
mov eax, dword [0x10356800]
add eax, 0x48
jmp 0x100229ea
mov eax, dword [0x10356800]
add eax, 0x3c
jmp 0x100229ea
mov eax, dword [0x10356800]
add eax, 0x40
jmp 0x100229ea
mov eax, dword [0x10356800]
add eax, 0x44
jmp 0x100229ea
mov dword [esi + 0x33b8], 0
call fcn.1002ad40
call fcn.1002ad40
mov eax, 0x755506d2
mov ecx, 0x9f9ad218
mov dword [esi + 0xa4], ecx
mov dword [esi + 0xa0], eax
mov eax, 0x889679db
mov ecx, 0xf0e80dbe
mov dword [esi + 0xac], ecx
mov dword [esi + 0xa8], eax
mov eax, 0x74701c06
mov ecx, 0x6d9d2f95
mov dword [esi + 0xb4], ecx
mov dword [esi + 0xb0], eax
mov eax, 0x4b3a6a48
mov ecx, 0x6ce1aba8
mov edx, 0x53463a5
mov edi, 0xedc5bc77
mov dword [esi + 0x54], edi
mov dword [esi + 0x50], edx
mov edx, 0xe1f91abe
mov edi, 0x939b52d2
mov dword [esi + 0x5c], edi
mov edi, 0x6d9d2f95
mov dword [esi + 0x58], edx
mov edx, 0x74157067
mov dword [esi + 0x64], edi
mov dword [esi + 0x60], edx
mov byte [0x103569b8], 1
mov dword [esi + 0xbc], ecx
mov dword [esi + 0xb8], eax
mov dword [esi + 0x6c], ecx
mov dword [esi + 0x68], eax
lea eax, [esi + 0x50]
xor ecx, ecx
mov ecx, dword [0x1035684c]
movaps xmm0, xmmword [esi + 0xa0]
xorps xmm0, xmmword [eax]
movaps xmmword [esi + 0xa0], xmm0
movaps xmm0, xmmword [esi + 0xb0]
xorps xmm0, xmmword [eax + 0x10]
movaps xmmword [esi + 0xb0], xmm0
mov eax, dword [ecx]
mov eax, dword [eax + 0x40]
mov dword [esi + 0x33b8], 8
lea edx, [esi + 0xa0]
push edx
call eax
mov dword [0x103569b4], eax
mov eax, dword [0x1035678c]
jmp 0x1002237f
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
push ebp
sub esp, 0x18
lea esi, [ebp - 0x33bc]
mov ebp, dword [esi + 0x33a8]
mov byte [0x103569b8], 0
add esp, 0x18
pop ebp
ret