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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xffffffe0
mov eax, 0x33c0
call fcn.100e8330
mov esi, esp
mov dword [esi + 0x3398], ebp
mov edi, ecx
mov dword [esi + 0x339c], esp
mov dword [esi + 0x33a8], 0xffffffff
lea eax, [esi + 0x33a0]
mov dword [esi + 0x33a4], 0x1002f830
mov ecx, dword fs:[0]
mov dword [esi + 0x33a0], ecx
mov dword fs:[0], eax
push 0x24
call fcn.100e80cd
add esp, 4
vxorps xmm0, xmm0, xmm0
vmovups ymmword [eax], ymm0
mov dword [eax + 0x20], 0
mov dword [esi + 0x68], eax
mov edx, dword [edi + 0x170]
mov eax, dword [edi + 0x174]
mov dword [esi + 0x90], eax
mov dword [esi + 0x1c], edi
cmp edx, dword [esi + 0x90]
je 0x10021e06
nop dword [eax]
mov eax, dword [edx + 0xc]
mov edi, dword [eax + 0x20]
test edi, edi
mov dword [esi + 0x14], edx
je 0x10021802
mov eax, dword [0x1029fb9c]
mov ecx, dword [eax + 0x184]
cmp byte [ecx + edi], 0
je 0x10021b60
cmp byte [edx + 0x18], 0
je 0x10021840
mov edi, dword [edx + 0x10]
cmp byte [edi + 0x642b], 0
je 0x10021840
mov eax, dword [edx + 0xc]
mov edx, dword [eax + 0x20]
test edx, edx
je 0x10021840
mov eax, dword [0x1029fb9c]
mov ecx, dword [eax + 0x184]
cmp byte [ecx + edx], 0
je 0x10021cd8
nop word cs:[eax + eax]
mov eax, dword [0x1029fb94]
mov dword [esi + 0x18], eax
mov dword [esi + 0x33a8], 0
push 0x18
vzeroupper
call fcn.100e80cd
add esp, 4
mov dword [eax + 4], 1
mov dword [eax + 8], 1
mov dword [esi + 0x20], eax
mov dword [eax], vtable.std::_Ref_count_obj2_class_std::packaged_task_void____cdecl___void___.0
mov dword [esi + 0x33a8], 3
push 0xa8
call fcn.100e80cd
add esp, 4
mov edi, eax
mov ebx, dword [esi + 0x20]
mov eax, ebx
add eax, 0xc
mov dword [esi + 0x3c], eax
mov dword [edi], vtable.std::_Associated_state_int_.0
vmovaps xmm0, xmmword [0x10145a30]
vmovups xmmword [edi + 4], xmm0
lea eax, [edi + 0xc]
push eax
call sub.MSVCP140.dll_void___cdecl___ExceptionPtrCreate_void__
add esp, 4
lea eax, [edi + 0x14]
vxorps xmm0, xmm0, xmm0
vmovups ymmword [edi + 0x24], ymm0
vmovups ymmword [edi + 0x14], ymm0
push 2
push eax
vzeroupper
call sub.MSVCP140.dll__Mtx_init_in_situ
add esp, 8
lea eax, [edi + 0x44]
push eax
call sub.MSVCP140.dll__Cnd_init_in_situ
add esp, 4
mov byte [edi + 0x6c], 0
mov dword [edi + 0x70], 0
mov dword [edi + 0x73], 0
mov dword [edi + 0x78], 0
mov dword [edi], vtable.std::_Packaged_state_void____cdecl___void__.0
mov eax, edi
sub eax, 0xffffff80
mov dword [edi + 0x80], 0x10146324
mov ecx, dword [esi + 0x14]
mov dword [edi + 0x84], ecx
mov dword [edi + 0xa4], eax
mov eax, dword [esi + 0x3c]
mov dword [esi + 0x340], eax
mov dword [ebx + 0xc], edi
mov byte [ebx + 0x10], 0
mov dword [esi + 0x344], ebx
mov byte [ebx + 0x14], 1
mov dword [esi + 0xd4], edi
mov byte [esi + 0xd8], 1
lock inc dword [edi + 4]
mov ebx, dword [esi + 0x18]
lea eax, [ebx + 4]
mov dword [esi + 0x3c], eax
push eax
call sub.MSVCP140.dll__Mtx_lock
add esp, 4
test eax, eax
jne 0x100238a4
cmp dword [ebx + 0x30], 0x7fffffff
je 0x10023889
mov dword [esi + 0x1e0], 0
mov dword [esi + 0x1e4], 0
mov eax, dword [esi + 0x344]
test eax, eax
je 0x100219a0
lock inc dword [eax + 4]
mov edi, dword [esi + 0x344]
jmp 0x100219a2
xor edi, edi
mov eax, dword [esi + 0x340]
mov dword [esi + 0x20], eax
mov dword [esi + 0x1e0], eax
mov dword [esi + 0x1e4], edi
mov edx, dword [ebx + 0x44]
mov eax, dword [ebx + 0x4c]
lea ecx, [eax + 1]
cmp edx, ecx
mov ecx, edx
ja 0x100219e9
mov dword [esi + 0x70], edi
lea ecx, [ebx + 0x3c]
mov dword [esi + 0x33a8], 2
push 1
call fcn.1002caa0
mov ebx, dword [esi + 0x18]
mov ecx, dword [ebx + 0x44]
mov eax, dword [ebx + 0x4c]
mov edi, dword [esi + 0x70]
dec ecx
mov edx, dword [ebx + 0x48]
and edx, ecx
mov dword [ebx + 0x48], edx
add edx, eax
and ecx, edx
mov eax, dword [ebx + 0x40]
mov eax, dword [eax + ecx*4]
test eax, eax
jne 0x10021a3f
mov dword [esi + 0x6c], edx
mov dword [esi + 0xc0], ecx
mov dword [esi + 0x70], edi
mov dword [esi + 0x33a8], 2
push 0x28
call fcn.100e80cd
add esp, 4
mov ebx, dword [esi + 0x18]
mov ecx, dword [ebx + 0x40]
mov edx, dword [esi + 0xc0]
mov dword [ecx + edx*4], eax
mov eax, dword [ebx + 0x44]
dec eax
and eax, dword [esi + 0x6c]
mov ecx, dword [ebx + 0x40]
mov eax, dword [ecx + eax*4]
mov edi, dword [esi + 0x70]
mov dword [eax + 0x24], 0
mov dword [eax], 0x10146344
mov dword [eax + 4], 0
mov dword [eax + 8], 0
test edi, edi
je 0x10021a80
lock inc dword [edi + 4]
mov ecx, dword [esi + 0x1e0]
mov dword [esi + 0x20], ecx
mov edi, dword [esi + 0x1e4]
jmp 0x10021a82
xor edi, edi
mov ecx, dword [esi + 0x20]
mov dword [eax + 4], ecx
mov dword [eax + 8], edi
mov dword [eax + 0x24], eax
inc dword [ebx + 0x4c]
test edi, edi
je 0x10021ab0
lock dec dword [edi + 4]
jne 0x10021ab0
mov eax, dword [edi]
mov ecx, edi
call dword [eax]
lock dec dword [edi + 8]
jne 0x10021ab0
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
nop
push dword [esi + 0x3c]
call sub.MSVCP140.dll__Mtx_unlock
add esp, 4
lock inc dword [ebx + 0x50]
mov eax, 1
lock xadd dword [ebx + 0x34], eax
cmp eax, 0x7fffffff
jae 0x10023883
mov eax, dword [ebx + 0x38]
test eax, eax
je 0x10021af6
add ebx, 0x34
cmp eax, 2
jl 0x10021af0
push ebx
call sub.MSVCP140_ATOMIC_WAIT.dll___std_atomic_notify_one_direct
jmp 0x10021af6
push ebx
call sub.MSVCP140_ATOMIC_WAIT.dll___std_atomic_notify_all_direct
mov edi, dword [esi + 0x344]
test edi, edi
je 0x10021b20
lock dec dword [edi + 4]
jne 0x10021b20
mov eax, dword [edi]
mov ecx, edi
call dword [eax]
lock dec dword [edi + 8]
jne 0x10021b20
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
nop dword [eax]
mov eax, dword [esi + 0xd4]
test eax, eax
je 0x10021ca0
lock dec dword [eax + 4]
jne 0x10021ca0
mov ecx, dword [eax + 0x78]
test ecx, ecx
je 0x10021c92
mov edx, dword [ecx]
push eax
call dword [edx]
mov edi, dword [0x1029fb94]
jmp 0x10021cb5
mov eax, dword [eax + 0x1c]
cmp dword [eax + edi], 0
jle 0x10021802
lea ecx, [edi + 8]
mov dword [esi + 0x18], edi
mov eax, dword [edi + 8]
mov eax, dword [eax + 0x24]
mov dword [esi + 0x33a8], 0
vzeroupper
call eax
test al, al
mov edx, dword [esi + 0x14]
mov ebx, dword [esi + 0x18]
jne 0x10021802
mov edi, dword [0x1029fb9c]
mov eax, dword [edi + 0xdc]
mov eax, dword [eax + ebx + 8]
mov dword [edx + 0x3080], eax
mov eax, dword [edi + 0xdc]
mov eax, dword [eax + ebx + 0xc]
mov dword [edx + 0x3084], eax
mov byte [edx + 0x308c], 0
mov ecx, dword [ebx + 0x290c]
mov dword [edx + 0x307c], ecx
mov eax, dword [ebx + 0x2900]
test eax, eax
je 0x10021bfa
mov edx, dword [esi + 0x14]
add edx, 0x7c
shl ecx, 4
lea ecx, [ecx + ecx*2]
push ecx
push eax
push edx
call sub.VCRUNTIME140.dll_memcpy
mov edx, dword [esi + 0x14]
add esp, 0xc
mov byte [edx + 0x308c], 1
mov eax, dword [edi + 0x18]
mov eax, dword [ebx + eax + 4]
mov dword [edx + 0x3088], eax
mov eax, dword [edi + 0x2c]
mov ecx, dword [eax + ebx + 8]
mov dword [edx + 0x6c], ecx
lea ecx, [edx + 0x3c]
vmovsd xmm0, qword [eax + ebx]
vmovsd qword [edx + 0x64], xmm0
vmovsd xmm0, qword [ebx + 0x3a8]
vmovsd qword [edx + 0x58], xmm0
mov eax, dword [ebx + 0x3b0]
mov dword [edx + 0x60], eax
mov eax, dword [edi + 0x60]
vmovsd xmm0, qword [eax + ebx]
vmovsd qword [ecx], xmm0
mov eax, dword [eax + ebx + 8]
mov dword [ecx + 8], eax
mov eax, dword [edi + 0x64]
mov ecx, dword [eax + ebx + 8]
mov dword [edx + 0x50], ecx
vmovsd xmm0, qword [eax + ebx]
vmovsd qword [edx + 0x48], xmm0
mov eax, dword [edi + 0x38]
mov ecx, dword [eax + ebx + 8]
mov dword [edx + 0x78], ecx
vmovsd xmm0, qword [eax + ebx]
vmovsd qword [edx + 0x70], xmm0
mov eax, dword [edi + 0x208]
mov eax, dword [eax + ebx]
test eax, eax
je 0x10021802
vmovss xmm0, dword [eax + 0x80]
vmovss dword [edx + 0x54], xmm0
jmp 0x10021802
mov edx, dword [eax]
mov ecx, eax
push 1
call dword [edx]
nop word [eax + eax]
mov edi, dword [0x1029fb94]
jmp 0x10021cb5
call sub.MSVCP140.dll__Thrd_yield
cmp dword [edi + 0x50], 0
jne 0x10021cb0
mov edx, dword [esi + 0x14]
add edx, 0x3090
mov edi, dword [esi + 0x1c]
cmp edx, dword [esi + 0x90]
jne 0x100217e0
jmp 0x10021e06
mov eax, dword [eax + 0x1c]
cmp dword [eax + edx], 0
mov dword [esi + 0x33a8], 0
jle 0x10021840
mov dword [esi + 0x20], edi
lea ecx, [edx + 8]
mov dword [esi + 0x18], edx
mov eax, dword [edx + 8]
vzeroupper
call dword [eax + 0x24]
test al, al
mov edi, dword [esi + 0x20]
mov ebx, dword [esi + 0x18]
jne 0x10021840
cmp byte [edi + 0x642b], 0
je 0x10021d50
mov eax, dword [ebx + 0x2900]
test eax, eax
je 0x10021d50
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 [0x1029fb9c]
mov ecx, dword [eax + 0x2f4]
mov ecx, dword [ecx + 0xa]
mov ecx, dword [ecx]
mov eax, dword [eax + 0x18]
mov dword [ebx + eax + 4], ecx
mov eax, dword [0x1029fb9c]
mov ecx, dword [eax + 0x2c]
mov edx, dword [edi + 0x6380]
mov dword [ecx + ebx + 8], edx
vmovsd xmm0, qword [edi + 0x6378]
vmovsd qword [ecx + ebx], xmm0
mov ecx, dword [edi + 0x638c]
mov dword [ebx + 0x3b0], ecx
lea edx, [edi + 0x6378]
vmovsd xmm0, qword [edi + 0x6384]
vmovsd qword [ebx + 0x3a8], xmm0
mov ecx, ebx
push edx
call dword [eax + 0x2f0]
mov ecx, dword [esi + 0x18]
mov eax, dword [ecx]
call dword [eax + 0xc]
test eax, eax
je 0x10021dc5
mov ecx, dword [esi + 0x20]
lea edx, [ecx + 0x63b0]
lea edi, [ecx + 0x63dc]
mov ebx, dword [0x1029fb9c]
mov ecx, eax
push edi
push edx
call dword [ebx + 0x300]
mov eax, dword [esi + 0x20]
vmovss xmm0, dword [eax + 0x63bc]
mov dword [esi + 0x340], 0
vmovss dword [esi + 0x344], xmm0
mov dword [esi + 0x348], 0
mov eax, dword [0x1029fb9c]
mov ecx, dword [esi + 0x18]
lea edx, [esi + 0x340]
push edx
call dword [eax + 0x2ec]
jmp 0x10021840
mov ebx, dword [edi + 0x170]
mov edx, dword [edi + 0x174]
mov dword [esi + 0x20], edx
jmp 0x10021e29
add ebx, 0x3090
mov edi, dword [esi + 0x1c]
cmp ebx, edx
je 0x10021f8f
mov eax, dword [ebx + 0xc]
mov edi, dword [eax + 0x20]
test edi, edi
je 0x10021e20
mov eax, dword [0x1029fb9c]
mov ecx, dword [eax + 0x184]
cmp byte [ecx + edi], 0
jne 0x10021e20
mov eax, dword [eax + 0x1c]
cmp dword [eax + edi], 0
jle 0x10021e20
lea ecx, [edi + 8]
mov eax, dword [edi + 8]
mov eax, dword [eax + 0x24]
mov dword [esi + 0x33a8], 0
mov dword [esi + 0x14], ebx
mov dword [esi + 0x18], edi
vzeroupper
call eax
mov edi, dword [esi + 0x18]
mov edx, dword [esi + 0x20]
mov ebx, dword [esi + 0x14]
test al, al
jne 0x10021e20
mov ecx, dword [ebx + 0x3080]
mov eax, dword [0x1029fb9c]
mov edx, dword [eax + 0xdc]
mov dword [edx + edi + 8], ecx
mov ecx, dword [ebx + 0x3084]
mov edx, dword [eax + 0xdc]
mov dword [edx + edi + 0xc], ecx
cmp byte [ebx + 0x308c], 0
je 0x10021ed2
lea eax, [ebx + 0x7c]
mov ecx, dword [ebx + 0x307c]
shl ecx, 4
lea ecx, [ecx + ecx*2]
push ecx
push eax
push dword [edi + 0x2900]
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [0x1029fb9c]
mov ecx, dword [ebx + 0x3088]
mov eax, dword [eax + 0x18]
mov dword [edi + eax + 4], ecx
mov eax, dword [0x1029fb9c]
mov eax, dword [eax + 0x2c]
mov ecx, dword [ebx + 0x6c]
mov dword [eax + edi + 8], ecx
vmovsd xmm0, qword [ebx + 0x64]
vmovsd qword [eax + edi], xmm0
mov eax, dword [ebx + 0x60]
mov dword [edi + 0x3b0], eax
vmovsd xmm0, qword [ebx + 0x58]
vmovsd qword [edi + 0x3a8], xmm0
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0xc]
mov ecx, dword [esi + 0x18]
mov edi, dword [esi + 0x14]
test eax, eax
je 0x10021f3b
lea edx, [edi + 0x3c]
add edi, 0x48
mov ebx, dword [0x1029fb9c]
mov ecx, eax
push edi
push edx
call dword [ebx + 0x300]
mov ecx, dword [esi + 0x18]
mov edi, dword [esi + 0x14]
vmovss xmm0, dword [edi + 0x54]
mov dword [esi + 0x340], 0
vmovss dword [esi + 0x344], xmm0
mov dword [esi + 0x348], 0
mov eax, dword [0x1029fb9c]
lea edx, [esi + 0x340]
push edx
call dword [eax + 0x2ec]
mov ecx, dword [esi + 0x18]
mov eax, dword [esi + 0x14]
add eax, 0x70
mov edx, dword [0x1029fb9c]
push eax
call dword [edx + 0x2f0]
mov edx, dword [esi + 0x20]
mov ebx, dword [esi + 0x14]
jmp 0x10021e20
mov ebx, dword [edi + 0x170]
mov eax, dword [edi + 0x174]
mov dword [esi + 0x18], eax
cmp ebx, eax
je 0x100221c6
mov eax, 0x8421085
lea edx, [esi + 0x340]
mulx ecx, ecx, eax
mov eax, edx
sub eax, ecx
shr eax, 1
add eax, ecx
shr eax, 4
mov ecx, eax
shl ecx, 5
sub eax, ecx
add eax, esi
add eax, 0x340
mov dword [esi + 0x20], eax
mov dword [esi + 0x33a8], 0
nop dword [eax]
mov dword [esi + 0x340], 0
mov dword [esi + 0x344], 0
mov dword [esi + 0x348], 0
lea edx, [esi + 0x340]
mov dword [esi + 0x344], edx
mov ecx, dword [esi + 0x20]
mov dword [esi + 0x348], ecx
mov eax, ebx
rol eax, cl
sub eax, edx
bswap eax
mov dword [esi + 0x340], eax
mov dword [esi + 0x14], ebx
lea eax, [ebx + 0x24]
push 0
push eax
push dword [esi + 0x348]
push dword [esi + 0x344]
push dword [esi + 0x340]
vzeroupper
call fcn.10026e90
test al, al
je 0x1002205b
mov ebx, dword [esi + 0x14]
add ebx, 0x3090
cmp ebx, dword [esi + 0x18]
jne 0x10021fe0
jmp 0x100221bd
mov ebx, dword [esi + 0x14]
cmp ebx, dword [esi + 0x18]
je 0x100221bd
lea eax, [ebx + 0x3090]
cmp eax, dword [esi + 0x18]
je 0x10022143
mov ecx, 0x8421085
lea edx, [esi + 0x340]
mulx edi, edi, ecx
mov ecx, edx
sub ecx, edi
shr ecx, 1
add ecx, edi
shr ecx, 4
mov edx, ecx
shl edx, 5
sub ecx, edx
add ecx, esi
add ecx, 0x340
mov dword [esi + 0x3c], ecx
mov dword [esi + 0x20], ebx
jmp 0x100220d2
mov edi, dword [esi + 0x20]
mov ecx, edi
mov ebx, dword [esi + 0x14]
push ebx
call fcn.1002acc0
add edi, 0x3090
mov dword [esi + 0x20], edi
lea eax, [ebx + 0x3090]
cmp eax, dword [esi + 0x18]
je 0x10022146
mov edx, ebx
mov dword [esi + 0x340], 0
mov dword [esi + 0x344], 0
mov dword [esi + 0x348], 0
lea edi, [esi + 0x340]
mov dword [esi + 0x344], edi
mov ecx, dword [esi + 0x3c]
mov dword [esi + 0x348], ecx
mov dword [esi + 0x14], eax
rol eax, cl
sub eax, edi
bswap eax
mov dword [esi + 0x340], eax
add edx, 0x30b4
push 0
push edx
push dword [esi + 0x348]
push dword [esi + 0x344]
push dword [esi + 0x340]
call fcn.10026e90
test al, al
jne 0x100220b0
mov ebx, dword [esi + 0x14]
jmp 0x100220c7
mov dword [esi + 0x20], ebx
mov eax, dword [esi + 0x20]
cmp eax, dword [esi + 0x18]
je 0x100221bd
mov eax, dword [esi + 0x1c]
mov eax, dword [eax + 0x174]
mov ebx, dword [esi + 0x18]
cmp eax, ebx
je 0x10022197
mov edi, dword [esi + 0x20]
mov dword [esi + 0x14], eax
nop word cs:[eax + eax]
mov ecx, edi
push ebx
call fcn.1002acc0
mov eax, dword [esi + 0x14]
add edi, 0x3090
add ebx, 0x3090
cmp ebx, eax
jne 0x10022170
mov dword [esi + 0x20], edi
mov eax, dword [esi + 0x1c]
mov ebx, dword [eax + 0x174]
cmp dword [esi + 0x20], ebx
je 0x100221b1
mov edi, dword [esi + 0x20]
nop
mov ecx, edi
call fcn.1001d910
add edi, 0x3090
cmp edi, ebx
jne 0x100221a0
mov eax, dword [esi + 0x1c]
mov ecx, dword [esi + 0x20]
mov dword [eax + 0x174], ecx
mov edi, dword [esi + 0x1c]
mov ebx, dword [edi + 0x170]
mov edi, dword [edi + 0x174]
cmp ebx, edi
je 0x100236f0
mov eax, edi
sub eax, ebx
cmp eax, 0x3090
jne 0x100221ee
test ebx, ebx
je 0x10022640
mov ecx, ebx
jmp 0x1002228b
lea eax, [ebx + 0x3090]
cmp eax, edi
je 0x10022640
mov dword [esi + 0x14], ebx
mov ecx, dword [0x1029fb9c]
mov ecx, dword [ecx + 0x1c]
mov dword [esi + 0x18], ecx
xor ecx, ecx
mov dword [esi + 0x20], edi
jmp 0x10022238
vcvtsi2ss xmm1, xmm2, edx
vucomiss xmm0, xmm1
mov ecx, eax
mov edi, dword [esi + 0x20]
jae 0x1002227f
add eax, 0x3090
cmp eax, edi
je 0x10022283
mov ebx, dword [eax + 0x1c]
test ebx, ebx
je 0x1002222f
mov edx, dword [eax + 0xc]
mov edx, dword [edx + 0x20]
mov edi, dword [esi + 0x18]
mov edx, dword [edi + edx]
mov ebx, dword [ebx + 0x18]
vcvtsi2ss xmm0, xmm2, ebx
test ecx, ecx
je 0x10022220
mov edi, edx
mov edx, ecx
mov ecx, dword [ecx + 0x1c]
vcvtsi2ss xmm1, xmm2, dword [ecx + 0x18]
mov ecx, edx
mov edx, edi
vucomiss xmm0, xmm1
mov edi, dword [esi + 0x20]
ja 0x10022279
vcvtsi2ss xmm1, xmm2, edx
vucomiss xmm0, xmm1
jb 0x1002222f
mov ecx, eax
cmp ebx, edx
jl 0x1002222f
mov ecx, eax
jmp 0x1002228b
test ecx, ecx
je 0x10022630
lea edx, [esi + 0x80]
mov eax, 0x8421085
mov edi, ecx
mulx ecx, ecx, eax
mov eax, edx
sub eax, ecx
shr eax, 1
add eax, ecx
shr eax, 4
mov ecx, eax
shl ecx, 5
sub eax, ecx
lea ecx, [esi + eax]
add ecx, 0x80
mov dword [esi + 0x14], edi
rol edi, cl
mov eax, dword [0x1029fbcc]
mov byte [eax + 8], 0
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
mov dword [esi + 0x80], 0
mov dword [esi + 0x84], 0
mov dword [esi + 0x88], 0
mov dword [esi + 0x84], edx
mov dword [esi + 0x88], ecx
sub edi, edx
bswap edi
mov dword [esi + 0x80], edi
mov edx, dword [esi + 0x80]
mov edi, dword [esi + 0x84]
mov ebx, dword [esi + 0x88]
mov dword [esi + 0x33a8], 0
mov ecx, dword [esi + 0x1c]
push eax
push ebx
push edi
push edx
vzeroupper
call fcn.100289d0
mov edi, eax
mov edx, dword [esi + 0x68]
test eax, eax
je 0x100223ad
mov ecx, dword [esi + 0x14]
mov eax, dword [ecx + 0xc]
mov eax, dword [eax + 0x20]
mov dword [edx], eax
vcvtsi2ss xmm0, xmm2, dword [edi + 0x18]
vmovss dword [edx + 0x10], xmm0
cmp byte [ecx + 0x18], 0
je 0x100238b8
mov eax, dword [ecx + 0x14]
test eax, eax
je 0x10022363
lock inc dword [eax + 4]
mov eax, dword [ecx + 0x14]
jmp 0x10022365
xor eax, eax
mov ecx, dword [ecx + 0x10]
mov dword [edx + 0x18], ecx
mov ebx, dword [edx + 0x1c]
mov dword [edx + 0x1c], eax
test ebx, ebx
je 0x1002238e
lock dec dword [ebx + 4]
jne 0x1002238e
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax]
lock dec dword [ebx + 8]
jne 0x1002238e
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 4]
mov eax, dword [edi + 0x10]
mov edx, dword [esi + 0x68]
mov dword [edx + 0x14], eax
vmovsd xmm0, qword [edi + 4]
vmovsd qword [edx + 4], xmm0
mov eax, dword [edi + 0xc]
mov dword [edx + 0xc], eax
mov eax, dword [esi + 0x14]
mov dword [edx + 0x20], eax
cmp dword [edx], 0
mov ecx, dword [esi + 0x1c]
je 0x100236b1
cmp dword [edx + 0x18], 0
je 0x100236b1
mov eax, dword [0x1029fbf8]
mov byte [eax + 0x17], 1
cmp dword [eax + 0x24], 5
jne 0x100223d9
mov dword [eax + 0x24], 3
mov eax, dword [edx + 0x20]
mov ecx, dword [edx + 0xc]
mov dword [eax + 0x38], ecx
mov dword [esi + 0x14], edx
vmovsd xmm0, qword [edx + 4]
vmovsd qword [eax + 0x30], xmm0
mov eax, dword [0x1029fb9c]
mov eax, dword [eax]
mov ecx, dword [eax]
mov dword [esi + 0x344], 0
mov dword [esi + 0x340], 0
mov dword [esi + 0x348], 0
mov eax, dword [ecx]
lea edx, [esi + 0x340]
push edx
call dword [eax + 0x454]
mov eax, dword [0x1029fb9c]
mov ecx, dword [esi + 0x348]
mov dword [eax + 0x4018], ecx
vmovsd xmm0, qword [esi + 0x340]
vmovsd qword [eax + 0x4010], xmm0
mov ecx, dword [0x1029fbf4]
sub esp, 0xc
mov edx, dword [esi + 0x1c]
mov eax, dword [edx + 0x168]
mov dword [esp + 8], eax
vmovsd xmm0, qword [edx + 0x160]
vmovsd qword [esp], xmm0
call fcn.1003c7b0
mov eax, dword [0x1029fb9c]
mov ecx, dword [esi + 0x14]
vmovss xmm0, dword [ecx + 4]
vmovss xmm1, dword [ecx + 8]
vmovss xmm2, dword [ecx + 0xc]
vsubss xmm3, xmm0, dword [eax + 0x4010]
vsubss xmm4, xmm1, dword [eax + 0x4014]
vsubss xmm0, xmm2, dword [eax + 0x4018]
vxorps xmm1, xmm1, xmm1
vmovaps xmm2, xmm3
vfmadd213ss xmm2, xmm3, xmm1
vfmadd231ss xmm2, xmm4, xmm4
vcvtss2sd xmm2, xmm2, xmm2
vsqrtsd xmm2, xmm2, xmm2
vcvtsd2ss xmm2, xmm2, xmm2
vucomiss xmm2, xmm1
jbe 0x10022556
vbroadcastss xmm1, dword [0x10144e60]
vxorps xmm0, xmm0, xmm1
vcvtss2sd xmm1, xmm2, xmm2
vcvtss2sd xmm0, xmm0, xmm0
sub esp, 0x10
vmovsd qword [esp + 8], xmm1
vmovsd qword [esp], xmm0
vmovss dword [esi + 0x20], xmm3
vmovss dword [esi + 0x18], xmm4
call sub.api_ms_win_crt_math_l1_1_0.dll_atan2
add esp, 0x10
fstp qword [esi + 0x128]
vmovss xmm0, dword [esi + 0x20]
vcvtss2sd xmm0, xmm0, xmm0
vmovss xmm1, dword [esi + 0x18]
vcvtss2sd xmm1, xmm1, xmm1
sub esp, 0x10
vmovsd qword [esp + 8], xmm0
vmovsd qword [esp], xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_atan2
add esp, 0x10
fstp qword [esi + 0x120]
vmovsd xmm0, qword [esi + 0x128]
vmovhpd xmm0, xmm0, qword [esi + 0x120]
vcvtpd2ps xmm0, xmm0
vbroadcastss xmm1, dword [0x10145a48]
vmulps xmm0, xmm0, xmm1
mov eax, dword [0x1029fb9c]
jmp 0x10022568
xor ecx, ecx
vucomiss xmm0, xmm1
seta cl
vmovss xmm0, dword [ecx*4 + 0x10145a40]
mov ecx, dword [esi + 0x1c]
vmovlps qword [ecx + 0x160], xmm0
mov dword [ecx + 0x168], 0
mov byte [eax + 0x4006], 0
mov ecx, dword [0x1029fbc4]
mov edx, dword [ecx + 0xc]
mov ecx, dword [eax + 4]
mov eax, dword [eax + 0x108]
movzx eax, word [eax + edx]
mov edx, dword [ecx]
push eax
call dword [edx + 8]
test eax, eax
mov ecx, dword [esi + 0x1c]
je 0x10022677
test byte [ecx + 0xc], 2
je 0x10022606
mov ecx, dword [0x1029fb9c]
vmovss xmm1, dword [ecx + 0x3fb0]
vxorps xmm0, xmm0, xmm0
vucomiss xmm1, xmm0
jne 0x10022606
jp 0x10022606
vmovss xmm1, dword [ecx + 0x3fb4]
vucomiss xmm1, xmm0
jne 0x10022606
jp 0x10022606
vmovss xmm0, dword [ecx + 0x3fb8]
vxorps xmm1, xmm1, xmm1
vucomiss xmm0, xmm1
jne 0x10022606
jp 0x10022606
mov cl, 1
cmp byte [eax + 0xe8], 0
jne 0x10022608
cmp dword [eax + 0xc8], 1
sete cl
jmp 0x10022608
xor ecx, ecx
movzx eax, cl
mov dword [esi + 0x18], eax
push eax
push 0
push 1
call fcn.10028fd0
test al, al
mov ecx, dword [esi + 0x1c]
je 0x10022659
call fcn.10023f30
inc eax
mov ecx, dword [esi + 0x1c]
mov dword [ecx + 0x16c], eax
jmp 0x10022677
mov ebx, dword [esi + 0x14]
cmp ebx, edi
je 0x100236f0
nop dword [eax + eax]
mov ecx, ebx
vzeroupper
call fcn.1001d910
add ebx, 0x3090
cmp ebx, edi
jne 0x10022640
jmp 0x100236e1
mov eax, dword [0x1029fbf8]
cmp dword [eax + 0x18], 0xe
jl 0x10022677
push dword [esi + 0x18]
push 0xe
push 1
call fcn.10028fd0
test al, al
mov ecx, dword [esi + 0x1c]
jne 0x1002261f
mov eax, dword [0x1029fb9c]
cmp byte [eax + 0x4005], 0
je 0x100236b1
cmp byte [ecx + 0x188], 0
jne 0x100236b1
mov edi, dword [eax]
mov edx, dword [eax + 0x1e8]
mov edi, dword [edi]
cmp byte [edx + edi], 0
je 0x100226b4
mov edx, dword [ebp + 8]
add edx, 0x30
mov dword [esi + 0x3c], edx
mov edx, dword [esi + 0x14]
jmp 0x1002271a
mov ecx, dword [0x1029fbc4]
mov edx, dword [eax + 0x108]
mov edi, dword [ecx + 0xc]
movzx edi, word [edx + edi]
add edi, 0xfffffff8
cmp di, 0x20
jae 0x100226dc
mov dl, 1
mov ebx, 0xc0000009
bt ebx, edi
jb 0x100226e9
mov ecx, dword [ecx + 0x10]
cmp dword [ecx + 0xc8], 5
sete dl
mov ecx, dword [ebp + 8]
lea edi, [ecx + 0x30]
mov ebx, dword [ecx + 0x30]
test bl, 2
mov ecx, dword [esi + 0x1c]
mov dword [esi + 0x3c], edi
jne 0x10022717
test dl, dl
je 0x10022717
cmp byte [ecx + 0x149], 0
mov edx, dword [esi + 0x14]
je 0x1002271a
or ebx, 0x800
mov dword [edi], ebx
jmp 0x1002271a
mov edx, dword [esi + 0x14]
add edx, 4
mov dword [esi + 0x20], edx
lea ebx, [ecx + 0x160]
vxorps xmm0, xmm0, xmm0
vmovaps ymmword [esi + 0x360], ymm0
vmovaps ymmword [esi + 0x340], ymm0
lea edx, [esi + 0x380]
lea edi, [esi + 0x3380]
nop word cs:[eax + eax]
vmovups ymmword [edx + 0x10], ymm0
vmovups ymmword [edx], ymm0
vmovups ymmword [edx + 0x30], ymm0
vmovups ymmword [edx + 0x40], ymm0
vmovups ymmword [edx + 0x60], ymm0
vmovups ymmword [edx + 0x70], ymm0
vmovups ymmword [edx + 0x90], ymm0
vmovups ymmword [edx + 0xa0], ymm0
vmovups ymmword [edx + 0xc0], ymm0
vmovups ymmword [edx + 0xd0], ymm0
vmovups ymmword [edx + 0xf0], ymm0
vmovups ymmword [edx + 0x100], ymm0
vmovups ymmword [edx + 0x120], ymm0
vmovups ymmword [edx + 0x130], ymm0
vmovups ymmword [edx + 0x160], ymm0
vmovups ymmword [edx + 0x150], ymm0
vmovups ymmword [edx + 0x190], ymm0
vmovups ymmword [edx + 0x180], ymm0
vmovups ymmword [edx + 0x1c0], ymm0
vmovups ymmword [edx + 0x1b0], ymm0
vmovups ymmword [edx + 0x1e0], ymm0
vmovups ymmword [edx + 0x1f0], ymm0
vmovups ymmword [edx + 0x210], ymm0
vmovups ymmword [edx + 0x220], ymm0
vmovups ymmword [edx + 0x240], ymm0
vmovups ymmword [edx + 0x250], ymm0
vmovups ymmword [edx + 0x270], ymm0
vmovups ymmword [edx + 0x280], ymm0
vmovups ymmword [edx + 0x2a0], ymm0
vmovups ymmword [edx + 0x2b0], ymm0
vmovups ymmword [edx + 0x2d0], ymm0
vmovups ymmword [edx + 0x2e0], ymm0
add edx, 0x300
cmp edx, edi
jne 0x10022750
vxorps xmm0, xmm0, xmm0
vmovups xmmword [edi], xmm0
mov byte [edi + 0x10], 0
mov edx, dword [esi + 0x14]
mov edi, dword [edx]
test edi, edi
mov dword [esi + 0x18], ebx
je 0x10022894
mov edx, dword [eax + 0x184]
cmp byte [edx + edi], 0
je 0x10022a00
mov edx, dword [esi + 0x14]
mov edi, dword [edx]
test edi, edi
je 0x10022894
mov eax, dword [0x1029fb9c]
mov edx, dword [eax + 0x184]
cmp byte [edx + edi], 0
mov edx, dword [esi + 0x14]
je 0x10022b5f
mov eax, dword [edx]
mov dword [esi + 0x33a8], 0
sub esp, 0x14
mov edi, dword [esi + 0x20]
mov edx, dword [edi + 8]
mov dword [esp + 0x10], edx
vmovsd xmm0, qword [edi]
vmovsd qword [esp + 8], xmm0
mov dword [esp + 4], ebx
mov dword [esp], eax
vzeroupper
call fcn.10024270
test al, al
je 0x10023690
lea ecx, [esi + 0x130]
push 1
call fcn.10029270
mov eax, dword [esi + 0x14]
mov ecx, dword [eax]
mov eax, dword [ecx + 8]
add ecx, 8
mov eax, dword [eax + 0x28]
mov dword [esi + 0x33a8], 4
call eax
vxorps xmm0, xmm0, xmm0
vmovups ymmword [esi + 0x275], ymm0
vmovaps ymmword [esi + 0x260], ymm0
vmovaps ymmword [esi + 0x240], ymm0
vmovaps ymmword [esi + 0x220], ymm0
vmovaps ymmword [esi + 0x200], ymm0
vmovaps ymmword [esi + 0x1e0], ymm0
vmovups ymmword [esi + 0x298], ymm0
vmovups ymmword [esi + 0x2b8], ymm0
vmovups ymmword [esi + 0x2d8], ymm0
vmovups ymmword [esi + 0x2f8], ymm0
mov dword [esi + 0x31a], 0
mov dword [esi + 0x316], 0
vxorps xmm0, xmm0, xmm0
vmovaps xmmword [esi + 0x320], xmm0
mov byte [esi + 0x330], 0
mov ecx, dword [0x1029fc38]
mov edx, dword [ecx]
lea edi, [esi + 0x1e0]
push edi
push eax
vzeroupper
call dword [edx + 0x20]
mov byte [esi + 0x20], al
mov eax, dword [esi + 0x14]
mov eax, dword [eax + 0x18]
lea ecx, [esi + 0x100]
push dword [eax + 0x6370]
push ecx
call fcn.1003e870
add esp, 8
cmp byte [esi + 0x20], 0
je 0x1002309d
mov eax, dword [esi + 0x14]
vmovss xmm0, dword [eax + 0x10]
vmovaps xmmword [esi + 0x90], xmm0
mov ecx, dword [eax + 0x14]
mov eax, dword [eax + 0x18]
vmovss xmm0, dword [eax + 0x6418]
vmovss xmm1, dword [eax + 0x641c]
vxorps xmm2, xmm2, xmm2
vfmadd231ss xmm2, xmm0, xmm0
vfmadd231ss xmm2, xmm1, xmm1
vcvtss2sd xmm0, xmm2, xmm2
vxorps xmm1, xmm1, xmm1
vucomisd xmm0, xmm1
mov dword [esi + 0x20], ecx
jb 0x10022cb1
vsqrtsd xmm0, xmm0, xmm0
jmp 0x10022ccf
mov eax, dword [eax + 0x1c]
cmp dword [eax + edi], 0
jle 0x10022873
lea ecx, [edi + 8]
mov dword [esi + 0x70], edi
mov eax, dword [edi + 8]
mov eax, dword [eax + 0x24]
mov dword [esi + 0x33a8], 0
vzeroupper
call eax
test al, al
mov ecx, dword [esi + 0x1c]
mov ebx, dword [esi + 0x18]
mov eax, dword [esi + 0x70]
jne 0x10022873
mov edx, eax
mov edi, dword [0x1029fb9c]
mov eax, dword [edi + 0xdc]
mov eax, dword [eax + edx + 8]
mov dword [esi + 0x3384], eax
mov eax, dword [edi + 0xdc]
mov eax, dword [eax + edx + 0xc]
mov dword [esi + 0x3388], eax
mov byte [esi + 0x3390], 0
mov ecx, dword [edx + 0x290c]
mov dword [esi + 0x3380], ecx
mov eax, dword [edx + 0x2900]
test eax, eax
je 0x10022a9c
shl ecx, 4
lea ecx, [ecx + ecx*2]
push ecx
push eax
lea eax, [esi + 0x380]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov byte [esi + 0x3390], 1
mov eax, dword [edi + 0x18]
mov ecx, edi
mov dword [esi + 0x90], edi
mov edi, dword [esi + 0x70]
mov eax, dword [edi + eax + 4]
mov dword [esi + 0x338c], eax
mov eax, dword [ecx + 0x2c]
mov ecx, dword [eax + edi + 8]
lea edx, [esi + 0x34c]
mov dword [edx + 0x24], ecx
vmovsd xmm0, qword [eax + edi]
vmovsd qword [edx + 0x1c], xmm0
mov eax, dword [edi + 0x3b0]
mov dword [edx + 0x18], eax
vmovsd xmm0, qword [edi + 0x3a8]
vmovsd qword [edx + 0x10], xmm0
mov ecx, dword [esi + 0x90]
mov eax, dword [ecx + 0x60]
vmovsd xmm0, qword [eax + edi]
vmovsd qword [esi + 0x340], xmm0
mov eax, dword [eax + edi + 8]
mov dword [esi + 0x348], eax
mov eax, dword [ecx + 0x64]
vmovsd xmm0, qword [eax + edi]
vmovsd qword [edx], xmm0
mov eax, dword [eax + edi + 8]
mov dword [edx + 8], eax
mov eax, dword [ecx + 0x38]
mov ecx, dword [eax + edi + 8]
lea edx, [esi + 0x374]
mov dword [edx + 8], ecx
vmovsd xmm0, qword [eax + edi]
vmovsd qword [edx], xmm0
mov eax, dword [esi + 0x90]
mov eax, dword [eax + 0x208]
mov eax, dword [eax + edi]
test eax, eax
mov ecx, dword [esi + 0x1c]
je 0x10022873
vmovss xmm0, dword [eax + 0x80]
vmovss dword [esi + 0x358], xmm0
jmp 0x10022873
mov ebx, dword [edx + 0x18]
mov dword [esi + 0x90], ebx
mov ebx, dword [esi + 0x18]
mov eax, dword [eax + 0x1c]
cmp dword [eax + edi], 0
mov dword [esi + 0x33a8], 0
jle 0x10022894
lea ecx, [edi + 8]
mov dword [esi + 0x70], edi
mov eax, dword [edi + 8]
vzeroupper
call dword [eax + 0x24]
test al, al
mov ecx, dword [esi + 0x1c]
mov ebx, dword [esi + 0x18]
mov edx, dword [esi + 0x14]
mov edi, dword [esi + 0x70]
jne 0x10022894
mov ebx, dword [esi + 0x90]
cmp byte [ebx + 0x642b], 0
je 0x10022bec
mov eax, dword [edi + 0x2900]
test eax, eax
je 0x10022bec
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 [0x1029fb9c]
mov ecx, dword [eax + 0x2f4]
mov ecx, dword [ecx + 0xa]
mov ecx, dword [ecx]
mov eax, dword [eax + 0x18]
mov dword [edi + eax + 4], ecx
mov eax, dword [0x1029fb9c]
mov ecx, dword [eax + 0x2c]
mov edx, dword [ebx + 0x6380]
mov dword [ecx + edi + 8], edx
vmovsd xmm0, qword [ebx + 0x6378]
vmovsd qword [ecx + edi], xmm0
mov ecx, dword [ebx + 0x638c]
mov dword [edi + 0x3b0], ecx
lea edx, [ebx + 0x6378]
vmovsd xmm0, qword [ebx + 0x6384]
vmovsd qword [edi + 0x3a8], xmm0
mov ecx, edi
push edx
call dword [eax + 0x2f0]
mov ecx, dword [esi + 0x70]
mov eax, dword [ecx]
call dword [eax + 0xc]
test eax, eax
je 0x10022c64
mov ecx, dword [esi + 0x90]
lea edx, [ecx + 0x63b0]
lea edi, [ecx + 0x63dc]
mov ebx, dword [0x1029fb9c]
mov ecx, eax
push edi
push edx
call dword [ebx + 0x300]
mov eax, dword [esi + 0x90]
vmovss xmm0, dword [eax + 0x63bc]
mov dword [esi + 0x1e0], 0
vmovss dword [esi + 0x1e4], xmm0
mov dword [esi + 0x1e8], 0
mov eax, dword [0x1029fb9c]
lea edx, [esi + 0x1e0]
mov ecx, dword [esi + 0x70]
push edx
call dword [eax + 0x2ec]
mov ecx, dword [esi + 0x1c]
mov ebx, dword [esi + 0x18]
mov edx, dword [esi + 0x14]
jmp 0x10022894
sub esp, 8
vmovsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrt
add esp, 8
fstp qword [esi + 0x118]
vmovsd xmm0, qword [esi + 0x118]
vmovsd qword [esi + 0xc0], xmm0
lea eax, [esi + 0x140]
mov dword [esi + 0x33a8], 5
push str._SHOT_INFO__player:
push eax
call fcn.100293e0
add esp, 8
lea ecx, [esi + 0x1f0]
push ecx
push eax
call fcn.100293e0
add esp, 8
push str._hb:
lea eax, [esi + 0x140]
push eax
call fcn.100293e0
add esp, 8
mov dword [esi + 0x70], eax
mov eax, dword [esi + 0x14]
mov eax, dword [eax + 0x14]
mov edi, 0x1016ba84
cmp eax, 0x12
ja 0x10022d33
mov edi, dword [eax*4 + 0x101459ac]
vxorpd xmm0, xmm0, xmm0
vmovapd xmmword [esi + 0x40], xmm0
mov dword [esi + 0x54], 0
mov dword [esi + 0x50], 0
push edi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
test eax, eax
js 0x100239ad
cmp eax, 0xf
ja 0x10022d81
mov dword [esi + 0x50], eax
mov dword [esi + 0x54], 0xf
mov ebx, eax
lea eax, [esi + 0x40]
push ebx
push edi
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add ebx, esi
add ebx, 0x40
jmp 0x10022deb
mov dword [esi + 0x14], edi
mov dword [esi + 0x6c], eax
or eax, 0xf
cmp eax, 0x17
mov ecx, 0x16
cmovae ecx, eax
cmp ecx, 0xfff
mov dword [esi + 0xc8], ecx
jb 0x10022dbc
lea eax, [ecx + 0x24]
push eax
call fcn.100e80cd
add esp, 4
mov edi, eax
add edi, 0x23
and edi, 0xffffffe0
mov dword [edi - 4], eax
jmp 0x10022dca
lea eax, [ecx + 1]
push eax
call fcn.100e80cd
add esp, 4
mov edi, eax
mov dword [esi + 0x40], edi
mov ebx, dword [esi + 0x6c]
mov dword [esi + 0x50], ebx
mov eax, dword [esi + 0xc8]
mov dword [esi + 0x54], eax
push ebx
push dword [esi + 0x14]
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add ebx, edi
mov byte [ebx], 0
cmp dword [esi + 0x54], 0x10
jb 0x10022df9
mov eax, dword [esi + 0x40]
jmp 0x10022dfc
lea eax, [esi + 0x40]
mov dword [esi + 0x33a8], 8
push eax
push dword [esi + 0x70]
call fcn.100293e0
add esp, 8
mov eax, dword [esi + 0x54]
cmp eax, 0x10
jb 0x10022e4a
mov ecx, dword [esi + 0x40]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x10022e40
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x10023883
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.100e81b0
add esp, 8
mov dword [esi + 0x33a8], 5
push 0x1016c9a1
lea eax, [esi + 0x140]
push eax
call fcn.100293e0
add esp, 8
mov dword [esi + 0x14], eax
lea eax, [esi + 0x40]
push dword [esi + 0x20]
push eax
call fcn.10019870
add esp, 8
mov eax, dword [esi + 0x50]
cmp dword [esi + 0x54], 0x10
lea ecx, [esi + 0x40]
jb 0x10022e89
mov ecx, dword [esi + 0x40]
mov dword [esi + 0x33a8], 9
push eax
push ecx
push dword [esi + 0x14]
call fcn.1002bb40
add esp, 0xc
push 0x1016c99f
push eax
call fcn.100293e0
add esp, 8
mov eax, dword [esi + 0x54]
cmp eax, 0x10
jb 0x10022ee6
mov ecx, dword [esi + 0x40]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x10022edc
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x10023883
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.100e81b0
add esp, 8
mov dword [esi + 0x33a8], 5
push str._damage:
lea eax, [esi + 0x140]
push eax
call fcn.100293e0
add esp, 8
mov dword [esi + 0x14], eax
vbroadcastss xmm0, dword [0x10144e60]
vmovaps xmm1, xmmword [esi + 0x90]
vmovaps xmmword [esi + 0x20], xmm0
vandps xmm0, xmm1, xmm0
vbroadcastss xmm2, dword [0x10145a4c]
vmovaps xmmword [esi + 0x70], xmm2
vorps xmm0, xmm0, xmm2
vaddss xmm0, xmm1, xmm0
vroundss xmm0, xmm0, xmm0, 0xb
vcvttss2si eax, xmm0
lea ecx, [esi + 0x40]
push eax
push ecx
call fcn.10019870
add esp, 8
mov eax, dword [esi + 0x50]
cmp dword [esi + 0x54], 0x10
lea ecx, [esi + 0x40]
jb 0x10022f5d
mov ecx, dword [esi + 0x40]
mov dword [esi + 0x33a8], 0xa
push eax
push ecx
push dword [esi + 0x14]
call fcn.1002bb40
add esp, 0xc
mov eax, dword [esi + 0x54]
cmp eax, 0x10
jb 0x10022fac
mov ecx, dword [esi + 0x40]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x10022fa2
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x10023883
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.100e81b0
add esp, 8
mov dword [esi + 0x33a8], 5
push str.__resolver:
lea eax, [esi + 0x140]
push eax
call fcn.100293e0
add esp, 8
cmp dword [esi + 0x114], 0x10
lea ecx, [esi + 0x100]
jb 0x10022fdf
mov ecx, dword [esi + 0x100]
push ecx
push eax
call fcn.100293e0
add esp, 8
push 0x10169df5
push eax
call fcn.100293e0
add esp, 8
push str._animation_velocity:
lea eax, [esi + 0x140]
push eax
call fcn.100293e0
add esp, 8
mov dword [esi + 0x14], eax
vmovsd xmm0, qword [esi + 0xc0]
vcvtsd2ss xmm0, xmm0, xmm0
vandps xmm1, xmm0, xmmword [esi + 0x20]
vorps xmm1, xmm1, xmmword [esi + 0x70]
vaddss xmm0, xmm0, xmm1
vroundss xmm0, xmm0, xmm0, 0xb
vcvttss2si eax, xmm0
lea ecx, [esi + 0x40]
push eax
push ecx
call fcn.10019870
add esp, 8
mov eax, dword [esi + 0x50]
cmp dword [esi + 0x54], 0x10
lea ecx, [esi + 0x40]
jb 0x1002304e
mov ecx, dword [esi + 0x40]
mov dword [esi + 0x33a8], 0xb
push eax
push ecx
push dword [esi + 0x14]
call fcn.1002bb40
add esp, 0xc
mov eax, dword [esi + 0x54]
cmp eax, 0x10
jb 0x1002309d
mov ecx, dword [esi + 0x40]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x10023093
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x10023883
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.100e81b0
add esp, 8
mov dword [esi + 0x8c], 0xcdc3c3c3
mov dword [esi + 0x33a8], 5
lea eax, [esi + 0xe8]
lea ecx, [esi + 0x130]
push eax
call fcn.100296c0
mov eax, dword [0x1029fb9c]
mov byte [eax + 0x4006], 1
cmp byte [0x1029fd80], 0
je 0x100238bd
mov ebx, dword [0x1029fc1c]
vmovss xmm0, dword [eax + 0x3fcc]
vaddss xmm0, xmm0, dword [eax + 0x3fc8]
mov eax, dword [0x1029fbac]
bswap eax
mov edx, dword [0x1029fbb0]
add edx, eax
mov ecx, dword [0x1029fbb4]
ror edx, cl
vmovss xmm1, dword [edx]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
mov ecx, dword [0x1029fbf8]
mov ecx, dword [ecx + 0x1c]
mov edx, dword [esi + 0x68]
mov dword [esi + 0x20], edx
mov edx, dword [edx + 0x20]
mov dword [esi + 0xe4], eax
mov dword [esi + 0xe0], ecx
mov eax, 0x4010
add eax, dword [0x1029fb9c]
mov dword [esi + 0xdc], edx
vmovss dword [esi + 0x40], xmm0
vmovss dword [esi + 0xa0], xmm1
mov dword [esi + 0x33a8], 6
lea edi, [esi + 0x40]
lea edx, [esi + 0xa0]
mov dword [esi + 0x14], ebx
mov ecx, ebx
push edi
push edx
lea edx, [esi + 0xe4]
push edx
lea edx, [esi + 0xe0]
push edx
lea edx, [esi + 0xdc]
push edx
push eax
call fcn.1002aea0
mov ebx, dword [esi + 0x14]
cmp dword [ebx + 0x10], 0x80
jb 0x10023216
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 + 0x30b0]
cmp eax, 0x10
jb 0x100231e2
mov ecx, dword [edi + 0x309c]
lea ebx, [eax + 1]
cmp ebx, 0x1000
jb 0x100231d5
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x10023883
add eax, 0x24
mov ebx, eax
mov ecx, edx
push ebx
push ecx
call fcn.100e81b0
add esp, 8
mov ebx, dword [esi + 0x14]
mov dword [edi + 0x30ac], 0
mov dword [edi + 0x30b0], 0xf
mov byte [edi + 0x309c], 0
add edi, 0xc
mov ecx, edi
call fcn.1001d910
mov eax, dword [ebx + 0xc]
inc eax
xor ecx, ecx
dec dword [ebx + 0x10]
cmovne ecx, eax
mov dword [ebx + 0xc], ecx
mov eax, dword [esi + 0x3c]
or byte [eax], 1
mov eax, dword [0x1029fb9c]
mov byte [eax + 0x3fbc], 1
mov byte [eax + 0x396], 1
cmp byte [eax + 0x4006], 0
mov edi, dword [esi + 0x18]
je 0x100232f9
mov ecx, dword [0x1029fbd8]
test byte [ecx + 0x58], 8
je 0x100232f9
mov eax, dword [0x1029fc64]
cmp dword [esi + 0xfc], 0x10
lea edx, [esi + 0xe8]
jb 0x10023269
mov edx, dword [esi + 0xe8]
mov ecx, dword [eax]
lea edi, [esi + 0x8c]
push edx
push edi
push eax
call dword [ecx + 0x64]
add esp, 0xc
mov ecx, 0x4d00cfe7
mov eax, 0xb4ffa733
mov edx, 0xb4ffa733
mov dword [esi + 0xa4], edx
mov dword [esi + 0xa0], ecx
mov ecx, 0x8682a696
mov edx, 0xe821554e
mov edi, 0x4d00cfed
mov dword [esi + 0x44], eax
mov dword [esi + 0x40], edi
mov dword [esi + 0xac], edx
mov dword [esi + 0x4c], edx
mov dword [esi + 0xa8], ecx
mov dword [esi + 0x48], ecx
xor eax, eax
lea ecx, [esi + 0x40]
mov eax, dword [0x1029fc64]
vmovaps xmm0, xmmword [esi + 0xa0]
vxorps xmm0, xmm0, xmmword [ecx]
vmovaps xmmword [esi + 0xa0], xmm0
mov ecx, dword [eax]
lea edx, [esi + 0xa0]
push edx
lea edx, [esi + 0x8c]
push edx
push eax
call dword [ecx + 0x64]
add esp, 0xc
mov eax, dword [0x1029fb9c]
mov edi, dword [esi + 0x18]
mov ecx, dword [esi + 0x20]
mov ecx, dword [ecx + 0x18]
vmovss xmm0, dword [ecx + 0x6360]
vaddss xmm0, xmm0, dword [eax + 0x3fc4]
mov eax, dword [0x1029fbac]
bswap eax
mov edx, dword [0x1029fbb0]
add edx, eax
mov ecx, dword [0x1029fbb4]
ror edx, cl
vmovss xmm1, dword [edx + 0x20]
mov dword [esi + 0x40], 0xe0329403
mov eax, dword [esi + 0x40]
bswap eax
mov dword [esi + 0x40], eax
add dword [esi + 0x40], 0x7c6bce58
mov eax, dword [esi + 0x40]
rorx eax, eax, 0x1c
mov dword [esi + 0x40], eax
mov eax, dword [esi + 0x40]
vcvtsi2ss xmm2, xmm2, eax
mov dword [esi + 0x40], 0x9d2ad1ee
mov eax, dword [esi + 0x40]
bswap eax
mov dword [esi + 0x40], eax
add dword [esi + 0x40], 0x24b6d563
mov eax, dword [esi + 0x40]
rorx eax, eax, 0xf
mov dword [esi + 0x40], eax
mov eax, dword [esi + 0x40]
vcvtsi2ss xmm3, xmm3, eax
vinsertps xmm0, xmm0, xmm2, 0x10
vinsertps xmm1, xmm1, xmm3, 0x10
vdivps xmm0, xmm0, xmm1
vmovshdup xmm1, xmm0
vaddss xmm0, xmm0, xmm1
vcvttss2si eax, xmm0
mov ecx, dword [ebp + 8]
mov dword [ecx + 8], eax
vmovsd xmm0, qword [edi]
vmovsd qword [ecx + 0xc], xmm0
mov eax, dword [edi + 8]
mov dword [ecx + 0x14], eax
mov eax, dword [0x1029fb9c]
mov ecx, dword [eax]
mov eax, dword [eax + 0x1b8]
mov dword [esi + 0x14], eax
mov eax, dword [ecx]
mov dword [esi + 0x18], eax
mov ecx, dword [0x1029fd7c]
mov eax, dword [ecx]
call dword [eax + 0x30]
fstp dword [esi + 0xd0]
vmovss xmm0, dword [esi + 0xd0]
mov eax, dword [esi + 0x14]
mov ecx, dword [esi + 0x18]
vmulss xmm1, xmm0, dword [eax + ecx + 8]
vmovsd xmm2, qword [eax + ecx]
vbroadcastss xmm0, xmm0
vmulps xmm0, xmm0, xmm2
mov ebx, dword [ebp + 8]
vmovsd xmm2, qword [ebx + 0xc]
vsubps xmm0, xmm2, xmm0
vmovlps qword [ebx + 0xc], xmm0
vmovss xmm2, dword [ebx + 0x14]
vsubss xmm1, xmm2, xmm1
vmovss dword [ebx + 0x14], xmm1
sub esp, 8
vmovss dword [esp], xmm0
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]
vmovss xmm0, dword [ebx + 0x10]
sub esp, 8
vmovss dword [esp], xmm0
mov dword [esp + 4], 0x43b40000
call edi
add esp, 8
fstp dword [ebx + 0x10]
vmovss xmm0, dword [ebx + 0x14]
sub esp, 8
vmovss dword [esp], xmm0
mov dword [esp + 4], 0x43b40000
call edi
add esp, 8
fstp dword [esi + 0xcc]
vmovsd xmm0, qword [ebx + 0xc]
vmovddup xmm1, qword [0x10145a60]
vmovddup xmm2, qword [0x10145a50]
vcmpltps xmm3, xmm2, xmm0
vmaxps xmm0, xmm1, xmm0
vblendvps xmm0, xmm0, xmm2, xmm3
vmovss xmm1, dword [esi + 0xcc]
vmovss xmm2, dword [0x10145a58]
vmaxss xmm2, xmm2, xmm1
vmovss xmm3, dword [0x10145a5c]
vcmpltss xmm1, xmm3, xmm1
vbroadcastss xmm3, dword [0x10145a5c]
vblendvps xmm1, xmm2, xmm3, xmm1
vmovlps qword [ebx + 0xc], xmm0
vmovss dword [ebx + 0x14], xmm1
mov eax, dword [0x1029fbac]
bswap eax
mov edx, dword [0x1029fbb0]
add edx, eax
mov ecx, dword [0x1029fbb4]
ror edx, cl
vmovss xmm0, dword [edx + 0x10]
mov eax, dword [0x1029fb9c]
vmovss dword [eax + 0x368], xmm0
mov ecx, dword [0x1029fbe0]
mov eax, dword [esi + 0x68]
push 0
push dword [eax + 0x18]
mov dword [esi + 0x14], eax
push dword [eax]
call fcn.10056460
mov eax, dword [esi + 0xfc]
cmp eax, 0x10
jb 0x1002354d
mov ecx, dword [esi + 0xe8]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x10023543
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x10023883
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.100e81b0
add esp, 8
mov eax, dword [esi + 0x114]
cmp eax, 0x10
jb 0x1002358b
mov ecx, dword [esi + 0x100]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x10023581
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x10023883
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.100e81b0
add esp, 8
mov eax, dword [esi + 0x130]
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 + 0x130]
mov eax, dword [eax + 4]
lea ecx, [eax - 0x68]
mov dword [esi + eax + 0x12c], ecx
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
test byte [esi + 0x184], 1
je 0x1002361d
mov eax, dword [esi + 0x168]
mov eax, dword [eax]
mov ecx, 0x48
test eax, eax
jne 0x100235e3
mov eax, dword [esi + 0x164]
mov eax, dword [eax]
mov ecx, 0x44
mov ecx, dword [esi + ecx + 0x130]
add eax, dword [ecx]
mov ecx, dword [esi + 0x154]
mov ecx, dword [ecx]
sub eax, ecx
cmp eax, 0x1000
jb 0x10023613
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x10023883
add eax, 0x23
mov ecx, edx
push eax
push ecx
call fcn.100e81b0
add esp, 8
lea edi, [esi + 0x198]
lea ecx, [esi + 0x148]
mov eax, dword [esi + 0x154]
mov dword [eax], 0
mov eax, dword [esi + 0x164]
mov dword [eax], 0
mov eax, dword [esi + 0x174]
mov dword [eax], 0
mov eax, dword [esi + 0x158]
mov dword [eax], 0
mov eax, dword [esi + 0x168]
mov dword [eax], 0
mov eax, dword [esi + 0x178]
mov dword [eax], 0
mov dword [esi + 0x180], 0
and byte [esi + 0x184], 0xfe
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 eax, dword [esi + 0x14]
mov edx, dword [eax]
test edx, edx
je 0x100236ae
mov eax, dword [0x1029fb9c]
mov ecx, dword [eax + 0x184]
cmp byte [ecx + edx], 0
je 0x1002373f
mov ecx, dword [esi + 0x1c]
mov edi, dword [ecx + 0x170]
mov ebx, dword [ecx + 0x174]
cmp edi, ebx
je 0x100236f0
nop word cs:[eax + eax]
mov ecx, edi
call fcn.1001d910
add edi, 0x3090
cmp edi, ebx
jne 0x100236d0
mov ecx, dword [esi + 0x1c]
mov eax, dword [ecx + 0x170]
mov dword [ecx + 0x174], eax
mov ebx, dword [esi + 0x68]
test ebx, ebx
je 0x10023726
mov edi, dword [ebx + 0x1c]
test edi, edi
je 0x1002371a
lock dec dword [edi + 4]
jne 0x1002371a
mov eax, dword [edi]
mov ecx, edi
vzeroupper
call dword [eax]
lock dec dword [edi + 8]
jne 0x1002371a
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
push ebx
vzeroupper
call fcn.100e81ab
add esp, 4
mov eax, dword [esi + 0x33a0]
mov dword fs:[0], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
vzeroupper
ret 8
mov eax, dword [eax + 0x1c]
cmp dword [eax + edx], 0
jle 0x100236ae
lea ecx, [edx + 8]
mov eax, dword [edx + 8]
mov eax, dword [eax + 0x24]
mov dword [esi + 0x33a8], 0
mov dword [esi + 0x14], edx
call eax
mov edi, dword [esi + 0x14]
test al, al
jne 0x100236ae
mov ecx, dword [esi + 0x3384]
mov eax, dword [0x1029fb9c]
mov edx, dword [eax + 0xdc]
mov dword [edx + edi + 8], ecx
mov ecx, dword [esi + 0x3388]
mov edx, dword [eax + 0xdc]
mov dword [edx + edi + 0xc], ecx
cmp byte [esi + 0x3390], 0
je 0x100237c4
mov eax, dword [esi + 0x3380]
shl eax, 4
lea eax, [eax + eax*2]
push eax
lea eax, [esi + 0x380]
push eax
push dword [edi + 0x2900]
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [0x1029fb9c]
mov ecx, dword [esi + 0x338c]
mov eax, dword [eax + 0x18]
mov dword [edi + eax + 4], ecx
mov eax, dword [0x1029fb9c]
mov eax, dword [eax + 0x2c]
lea edx, [esi + 0x34c]
mov ecx, dword [edx + 0x24]
mov dword [eax + edi + 8], ecx
vmovsd xmm0, qword [edx + 0x1c]
vmovsd qword [eax + edi], xmm0
mov eax, dword [edx + 0x18]
mov dword [edi + 0x3b0], eax
vmovsd xmm0, qword [edx + 0x10]
vmovsd qword [edi + 0x3a8], xmm0
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0xc]
mov ecx, dword [esi + 0x14]
test eax, eax
je 0x10023833
mov edx, dword [0x1029fb9c]
mov ecx, eax
lea eax, [esi + 0x34c]
push eax
lea eax, [esi + 0x340]
push eax
call dword [edx + 0x300]
mov ecx, dword [esi + 0x14]
vmovss xmm0, dword [esi + 0x358]
mov dword [esi + 0x1e0], 0
vmovss dword [esi + 0x1e4], xmm0
mov dword [esi + 0x1e8], 0
mov eax, dword [0x1029fb9c]
lea edx, [esi + 0x1e0]
push edx
call dword [eax + 0x2ec]
mov ecx, dword [esi + 0x14]
mov eax, dword [0x1029fb9c]
lea edx, [esi + 0x374]
push edx
call dword [eax + 0x2f0]
jmp 0x100236ae
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
mov dword [ebx + 0x30], Ordinal_2
mov dword [esi + 0x33a8], 1
push 6
call sub.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_
add esp, 4
mov dword [esi + 0x33a8], 1
push 5
call sub.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_
add esp, 4
call fcn.1002a5d0
mov eax, 0x3d61aa9a
mov ecx, 0xc6a0c95c
mov dword [esi + 0xa4], ecx
mov dword [esi + 0xa0], eax
mov eax, 0xefedc5f3
mov ecx, 0x8b520a22
mov dword [esi + 0xac], ecx
mov dword [esi + 0xa8], eax
mov eax, 0xab1e823e
mov ecx, 0x1ec28a69
mov dword [esi + 0xb4], ecx
mov dword [esi + 0xb0], eax
mov eax, 0xe5909738
mov ecx, 0xe20c77bc
mov edx, 0x4d00cfed
mov edi, 0xb4ffa733
mov dword [esi + 0x44], edi
mov dword [esi + 0x40], edx
mov edx, 0x8682a696
mov edi, 0xe821554e
mov dword [esi + 0x4c], edi
mov edi, 0x1ec28a69
mov dword [esi + 0x48], edx
mov edx, 0xab7bee5f
mov dword [esi + 0x54], edi
mov dword [esi + 0x50], edx
mov byte [0x1029fd80], 1
mov dword [esi + 0xbc], ecx
mov dword [esi + 0xb8], eax
mov dword [esi + 0x5c], ecx
mov dword [esi + 0x58], eax
lea eax, [esi + 0x40]
xor ecx, ecx
mov ecx, dword [0x1029fc64]
vmovaps xmm0, xmmword [esi + 0xa0]
vxorps xmm0, xmm0, xmmword [eax]
vmovaps xmmword [esi + 0xa0], xmm0
vmovaps xmm0, xmmword [esi + 0xb0]
vxorps xmm0, xmm0, xmmword [eax + 0x10]
vmovaps xmmword [esi + 0xb0], xmm0
mov eax, dword [ecx]
mov eax, dword [eax + 0x40]
mov dword [esi + 0x33a8], 7
lea edx, [esi + 0xa0]
push edx
call eax
mov dword [0x1029fd7c], eax
mov eax, dword [0x1029fb9c]
jmp 0x100230dc
call fcn.10017450
nop word cs:[eax + eax]
push ebp
sub esp, 0x18
lea esi, [ebp - 0x33ac]
mov ebp, dword [esi + 0x3398]
mov byte [0x1029fd80], 0
add esp, 0x18
pop ebp
ret