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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
mov eax, 0x3380
call fcn.100f1630
mov esi, esp
mov dword [esi + 0x3368], ebp
mov ebx, ecx
mov dword [esi + 0x336c], esp
mov dword [esi + 0x3378], 0xffffffff
lea eax, [esi + 0x3370]
mov dword [esi + 0x3374], 0x10036f60
mov ecx, dword fs:[0]
mov dword [esi + 0x3370], ecx
mov dword fs:[0], eax
push 0x24
call fcn.100f13cd
add esp, 4
mov edi, eax
xorps xmm0, xmm0
movups xmmword [eax], xmm0
movups xmmword [eax + 0x10], xmm0
mov dword [eax + 0x20], 0
lea eax, [esi + 0x58]
mov ecx, 0x8421085
mul ecx
mov ecx, edx
mov dword [esi + 0x3c], edi
lea edi, [esi + 0x70]
mov eax, edi
mov edx, 0x8421085
mul edx
mov eax, dword [0x1026fcc8]
mov byte [eax + 8], 0
lea eax, [esi + 0x58]
sub eax, ecx
shr eax, 1
add eax, ecx
shr eax, 4
mov ecx, eax
shl ecx, 5
sub eax, ecx
sub edi, edx
shr edi, 1
add edi, edx
shr edi, 4
mov edx, edi
shl edx, 5
sub edi, edx
add eax, esi
add eax, 0x58
mov dword [esi + 0x68], eax
lea eax, [esi + edi + 0x70]
mov dword [esi + 0x90], eax
mov edx, dword [ebx + 0x170]
mov dword [esi + 0x14], ebx
mov eax, dword [ebx + 0x174]
mov dword [esi + 0x6c], eax
jmp 0x10026da9
mov eax, dword [edi + 0x10]
mov edx, dword [esi + 0x3c]
mov dword [edx + 0x14], eax
movsd xmm0, qword [edi + 4]
movsd qword [edx + 4], xmm0
mov eax, dword [edi + 0xc]
mov dword [edx + 0xc], eax
mov eax, dword [esi + 4]
mov dword [edx + 0x20], eax
mov eax, dword [edx]
mov ecx, dword [0x1026fc70]
mov ecx, dword [ecx + 0x1c]
xorps xmm0, xmm0
cvtsi2ss xmm0, dword [ecx + eax]
movss xmm1, dword [edx + 0x10]
ucomiss xmm1, xmm0
jae 0x1002765a
mov edx, dword [esi + 4]
add edx, 0x3090
cmp edx, dword [esi + 0x6c]
je 0x10027655
lea eax, [edx + 0x3c]
mov dword [esi + 0x18], eax
mov eax, dword [edx + 0xc]
mov edi, dword [eax + 0x24]
test edi, edi
mov dword [esi + 4], edx
je 0x10026dda
mov eax, dword [0x1026fc70]
mov ecx, dword [eax + 0x184]
cmp byte [ecx + edi], 0
je 0x10027130
cmp byte [edx + 0x18], 0
je 0x10026e10
mov edi, dword [edx + 0x10]
cmp byte [edi + 0x642b], 0
je 0x10026e10
mov eax, dword [edx + 0xc]
mov edx, dword [eax + 0x24]
test edx, edx
je 0x10026e10
mov eax, dword [0x1026fc70]
mov ecx, dword [eax + 0x184]
cmp byte [ecx + edx], 0
je 0x100274ee
nop dword [eax + eax]
mov eax, dword [0x1026fc64]
mov dword [esi + 8], eax
mov dword [esi + 0x3378], 0
push 0x18
call fcn.100f13cd
add esp, 4
mov dword [eax + 4], 1
mov dword [eax + 8], 1
mov dword [esi + 0xc], eax
mov dword [eax], vtable.std::_Ref_count_obj2_class_std::packaged_task_void____cdecl___void___.0
mov dword [esi + 0x3378], 3
push 0xa8
call fcn.100f13cd
add esp, 4
mov edi, eax
mov ebx, dword [esi + 0xc]
mov eax, ebx
add eax, 0xc
mov dword [esi + 0x10], eax
mov dword [edi], vtable.std::_Associated_state_int_.0
movaps xmm0, xmmword [0x10141290]
movups xmmword [edi + 4], xmm0
lea eax, [edi + 0xc]
push eax
call sub.MSVCP140.dll_void___cdecl___ExceptionPtrCreate_void__
add esp, 4
xorps xmm0, xmm0
movups xmmword [edi + 0x28], xmm0
movups xmmword [edi + 0x18], xmm0
mov dword [edi + 0x38], 0
mov dword [edi + 0x3c], 0xffffffff
mov dword [edi + 0x14], 2
mov dword [edi + 0x40], 0
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], 0x10142d44
mov ecx, dword [esi + 4]
mov dword [edi + 0x84], ecx
mov dword [edi + 0xa4], eax
mov eax, dword [esi + 0x10]
mov dword [esi + 0x310], eax
mov dword [ebx + 0xc], edi
mov byte [ebx + 0x10], 0
mov dword [esi + 0x314], ebx
mov byte [ebx + 0x14], 1
mov dword [esi + 0xac], edi
mov byte [esi + 0xb0], 1
lock inc dword [edi + 4]
mov ebx, dword [esi + 8]
lea eax, [ebx + 4]
mov dword [esi + 0x10], eax
push eax
call sub.MSVCP140.dll__Mtx_lock
add esp, 4
test eax, eax
jne 0x10028b47
cmp dword [ebx + 0x30], 0x7fffffff
je 0x10028b2c
mov dword [esi + 0x1b0], 0
mov dword [esi + 0x1b4], 0
mov eax, dword [esi + 0x314]
test eax, eax
je 0x10026f70
lock inc dword [eax + 4]
mov edi, dword [esi + 0x314]
jmp 0x10026f72
xor edi, edi
mov eax, dword [esi + 0x310]
mov dword [esi + 0xc], eax
mov dword [esi + 0x1b0], eax
mov dword [esi + 0x1b4], edi
mov edx, dword [ebx + 0x44]
mov eax, dword [ebx + 0x4c]
lea ecx, [eax + 1]
cmp edx, ecx
mov ecx, edx
ja 0x10026fb9
mov dword [esi + 0x1c], edi
lea ecx, [ebx + 0x3c]
mov dword [esi + 0x3378], 2
push 1
call fcn.100330e0
mov ebx, dword [esi + 8]
mov ecx, dword [ebx + 0x44]
mov eax, dword [ebx + 0x4c]
mov edi, dword [esi + 0x1c]
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 0x1002700f
mov dword [esi + 0x94], edx
mov dword [esi + 0x64], ecx
mov dword [esi + 0x1c], edi
mov dword [esi + 0x3378], 2
push 0x28
call fcn.100f13cd
add esp, 4
mov ebx, dword [esi + 8]
mov ecx, dword [ebx + 0x40]
mov edx, dword [esi + 0x64]
mov dword [ecx + edx*4], eax
mov eax, dword [ebx + 0x44]
dec eax
and eax, dword [esi + 0x94]
mov ecx, dword [ebx + 0x40]
mov eax, dword [ecx + eax*4]
mov edi, dword [esi + 0x1c]
mov dword [eax + 0x24], 0
mov dword [eax], 0x10142d64
mov dword [eax + 4], 0
mov dword [eax + 8], 0
test edi, edi
je 0x10027050
lock inc dword [edi + 4]
mov ecx, dword [esi + 0x1b0]
mov dword [esi + 0xc], ecx
mov edi, dword [esi + 0x1b4]
jmp 0x10027052
xor edi, edi
mov ecx, dword [esi + 0xc]
mov dword [eax + 4], ecx
mov dword [eax + 8], edi
mov dword [eax + 0x24], eax
inc dword [ebx + 0x4c]
test edi, edi
je 0x10027080
lock dec dword [edi + 4]
jne 0x10027080
mov eax, dword [edi]
mov ecx, edi
call dword [eax]
lock dec dword [edi + 8]
jne 0x10027080
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
nop
push dword [esi + 0x10]
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 0x10028b26
mov eax, dword [ebx + 0x38]
test eax, eax
je 0x100270c6
add ebx, 0x34
cmp eax, 2
jl 0x100270c0
push ebx
call sub.MSVCP140_ATOMIC_WAIT.dll___std_atomic_notify_one_direct
jmp 0x100270c6
push ebx
call sub.MSVCP140_ATOMIC_WAIT.dll___std_atomic_notify_all_direct
mov edi, dword [esi + 0x314]
test edi, edi
je 0x100270f0
lock dec dword [edi + 4]
jne 0x100270f0
mov eax, dword [edi]
mov ecx, edi
call dword [eax]
lock dec dword [edi + 8]
jne 0x100270f0
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
nop dword [eax]
mov eax, dword [esi + 0xac]
test eax, eax
je 0x10027270
lock dec dword [eax + 4]
jne 0x10027270
mov ecx, dword [eax + 0x78]
test ecx, ecx
je 0x1002725f
mov edx, dword [ecx]
push eax
call dword [edx]
mov edi, dword [0x1026fc64]
jmp 0x10027285
mov eax, dword [eax + 0x1c]
cmp dword [eax + edi], 0
jle 0x10026dda
lea ecx, [edi + 8]
mov dword [esi + 8], edi
mov eax, dword [edi + 8]
mov eax, dword [eax + 0x24]
mov dword [esi + 0x3378], 0
call eax
test al, al
mov edx, dword [esi + 4]
mov ebx, dword [esi + 8]
jne 0x10026dda
mov edi, dword [0x1026fc70]
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 0x100271c7
mov edx, dword [esi + 4]
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 + 4]
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
movsd xmm0, qword [eax + ebx]
movsd qword [edx + 0x64], xmm0
movsd xmm0, qword [ebx + 0x3a8]
movsd qword [edx + 0x58], xmm0
mov eax, dword [ebx + 0x3b0]
mov dword [edx + 0x60], eax
mov eax, dword [edi + 0x60]
movsd xmm0, qword [eax + ebx]
mov ecx, dword [esi + 0x18]
movsd 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
movsd xmm0, qword [eax + ebx]
movsd qword [edx + 0x48], xmm0
mov eax, dword [edi + 0x38]
mov ecx, dword [eax + ebx + 8]
mov dword [edx + 0x78], ecx
movsd xmm0, qword [eax + ebx]
movsd qword [edx + 0x70], xmm0
mov eax, dword [edi + 0x208]
mov eax, dword [eax + ebx]
test eax, eax
je 0x10026dda
movss xmm0, dword [eax + 0x80]
movss dword [edx + 0x54], xmm0
jmp 0x10026dda
mov edx, dword [eax]
mov ecx, eax
push 1
call dword [edx]
nop word [eax + eax]
mov edi, dword [0x1026fc64]
jmp 0x10027285
call sub.MSVCP140.dll__Thrd_yield
cmp dword [edi + 0x50], 0
jne 0x10027280
mov eax, dword [esi + 4]
mov eax, dword [eax + 0xc]
mov edx, dword [eax + 0x24]
test edx, edx
je 0x100272ad
mov eax, dword [0x1026fc70]
mov ecx, dword [eax + 0x184]
cmp byte [ecx + edx], 0
je 0x100273b0
mov dword [esi + 0x58], 0
mov dword [esi + 0x5c], 0
mov dword [esi + 0x60], 0
lea edx, [esi + 0x58]
mov dword [esi + 0x5c], edx
mov ecx, dword [esi + 0x68]
mov dword [esi + 0x60], ecx
mov edi, dword [esi + 4]
mov eax, edi
rol eax, cl
sub eax, edx
bswap eax
mov dword [esi + 0x58], eax
lea eax, [edi + 0x24]
mov ecx, dword [esi + 0x58]
mov edx, dword [esi + 0x5c]
mov edi, dword [esi + 0x60]
mov dword [esi + 0x3378], 0
push 0
push eax
push edi
push edx
push ecx
call fcn.1002c930
test al, al
je 0x10026da0
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
mov dword [esi + 0x70], 0
mov dword [esi + 0x74], 0
mov dword [esi + 0x78], 0
lea edi, [esi + 0x70]
mov dword [esi + 0x74], edi
mov edx, dword [esi + 4]
mov ecx, dword [esi + 0x90]
rol edx, cl
mov dword [esi + 0x78], ecx
sub edx, edi
bswap edx
mov dword [esi + 0x70], edx
mov ecx, dword [esi + 0x14]
push eax
push dword [esi + 0x78]
push dword [esi + 0x74]
push dword [esi + 0x70]
call fcn.1002f020
mov edi, eax
test eax, eax
je 0x10026da0
mov eax, dword [esi + 0x3c]
cmp dword [eax], 0
je 0x1002736e
cvtsi2ss xmm0, dword [edi + 0x18]
ucomiss xmm0, dword [eax + 0x10]
jbe 0x10026da0
mov edx, dword [esi + 4]
mov ecx, dword [edx + 0xc]
mov ecx, dword [ecx + 0x24]
mov dword [eax], ecx
xorps xmm0, xmm0
cvtsi2ss xmm0, dword [edi + 0x18]
movss dword [eax + 0x10], xmm0
cmp byte [edx + 0x18], 0
je 0x10028b5b
mov ecx, dword [edx + 0x14]
test ecx, ecx
je 0x10027619
lock inc dword [ecx + 4]
mov ecx, dword [edx + 0x14]
jmp 0x1002761b
mov eax, dword [eax + 0x1c]
cmp dword [eax + edx], 0
mov dword [esi + 0x3378], 0
jle 0x100272ad
lea ecx, [edx + 8]
mov eax, dword [edx + 8]
mov dword [esi + 8], edx
call dword [eax + 0x24]
mov ebx, dword [esi + 8]
test al, al
jne 0x100272ad
mov edi, dword [esi + 4]
mov ecx, dword [edi + 0x3080]
mov eax, dword [0x1026fc70]
mov edx, dword [eax + 0xdc]
mov dword [edx + ebx + 8], ecx
mov ecx, dword [edi + 0x3084]
mov edx, dword [eax + 0xdc]
mov dword [edx + ebx + 0xc], ecx
mov edx, edi
cmp byte [edi + 0x308c], 0
je 0x10027438
lea eax, [edx + 0x7c]
mov ecx, dword [edx + 0x307c]
shl ecx, 4
lea ecx, [ecx + ecx*2]
push ecx
push eax
push dword [ebx + 0x2900]
call sub.VCRUNTIME140.dll_memcpy
mov edx, dword [esi + 4]
add esp, 0xc
mov eax, dword [0x1026fc70]
mov ecx, dword [edx + 0x3088]
mov eax, dword [eax + 0x18]
mov dword [ebx + eax + 4], ecx
mov eax, dword [0x1026fc70]
mov eax, dword [eax + 0x2c]
mov ecx, dword [edx + 0x6c]
mov dword [eax + ebx + 8], ecx
movsd xmm0, qword [edx + 0x64]
movsd qword [eax + ebx], xmm0
mov eax, dword [edx + 0x60]
mov dword [ebx + 0x3b0], eax
movsd xmm0, qword [edx + 0x58]
movsd qword [ebx + 0x3a8], xmm0
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0xc]
mov ecx, dword [esi + 8]
test eax, eax
je 0x1002749d
mov ecx, dword [esi + 4]
lea edx, [ecx + 0x48]
mov edi, dword [0x1026fc70]
mov ecx, eax
push edx
push dword [esi + 0x18]
call dword [edi + 0x300]
mov ecx, dword [esi + 8]
mov eax, dword [esi + 4]
movss xmm0, dword [eax + 0x54]
mov dword [esi + 0x310], 0
movss dword [esi + 0x314], xmm0
mov dword [esi + 0x318], 0
mov eax, dword [0x1026fc70]
lea edx, [esi + 0x310]
push edx
call dword [eax + 0x2ec]
mov ecx, dword [esi + 8]
mov eax, dword [esi + 4]
add eax, 0x70
mov edx, dword [0x1026fc70]
push eax
call dword [edx + 0x2f0]
jmp 0x100272ad
mov eax, dword [eax + 0x1c]
cmp dword [eax + edx], 0
mov dword [esi + 0x3378], 0
jle 0x10026e10
mov dword [esi + 0xc], edi
lea ecx, [edx + 8]
mov dword [esi + 8], edx
mov eax, dword [edx + 8]
call dword [eax + 0x24]
test al, al
mov edi, dword [esi + 0xc]
mov ebx, dword [esi + 8]
jne 0x10026e10
cmp byte [edi + 0x642b], 0
je 0x10027563
mov eax, dword [ebx + 0x2900]
test eax, eax
je 0x10027563
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 [0x1026fc70]
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 [0x1026fc70]
mov ecx, dword [eax + 0x2c]
mov edx, dword [edi + 0x6380]
mov dword [ecx + ebx + 8], edx
movsd xmm0, qword [edi + 0x6378]
movsd qword [ecx + ebx], xmm0
mov ecx, dword [edi + 0x638c]
mov dword [ebx + 0x3b0], ecx
lea edx, [edi + 0x6378]
movsd xmm0, qword [edi + 0x6384]
movsd qword [ebx + 0x3a8], xmm0
mov ecx, ebx
push edx
call dword [eax + 0x2f0]
mov ecx, dword [esi + 8]
mov eax, dword [ecx]
call dword [eax + 0xc]
test eax, eax
je 0x100275d8
mov ecx, dword [esi + 0xc]
lea edx, [ecx + 0x63b0]
lea edi, [ecx + 0x63dc]
mov ebx, dword [0x1026fc70]
mov ecx, eax
push edi
push edx
call dword [ebx + 0x300]
mov eax, dword [esi + 0xc]
movss xmm0, dword [eax + 0x63bc]
mov dword [esi + 0x310], 0
movss dword [esi + 0x314], xmm0
mov dword [esi + 0x318], 0
mov eax, dword [0x1026fc70]
mov ecx, dword [esi + 8]
lea edx, [esi + 0x310]
push edx
call dword [eax + 0x2ec]
jmp 0x10026e10
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 0x10026d60
lock dec dword [ebx + 4]
jne 0x10026d60
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax]
lock dec dword [ebx + 8]
jne 0x10026d60
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 4]
jmp 0x10026d60
mov edx, dword [esi + 0x3c]
mov eax, dword [edx]
test eax, eax
mov dword [esi + 4], edx
je 0x10028966
cmp dword [edx + 0x18], 0
je 0x10028966
mov eax, dword [edx + 0x20]
mov ecx, dword [edx + 0xc]
mov dword [eax + 0x38], ecx
movsd xmm0, qword [edx + 4]
movsd qword [eax + 0x30], xmm0
mov ecx, dword [0x1026fcf4]
mov dword [esi + 0x3378], 0
sub esp, 0xc
mov edx, dword [esi + 0x14]
mov eax, dword [edx + 0x168]
mov dword [esp + 8], eax
movsd xmm0, qword [edx + 0x160]
movsd qword [esp], xmm0
call fcn.100448e0
mov eax, dword [0x1026fc70]
mov ecx, dword [esi + 4]
movss xmm4, dword [ecx + 4]
movss xmm5, dword [ecx + 8]
subss xmm4, dword [eax + 0x4010]
subss xmm5, dword [eax + 0x4014]
movss xmm0, dword [ecx + 0xc]
subss xmm0, dword [eax + 0x4018]
movaps xmm2, xmm4
mulss xmm2, xmm4
xorps xmm1, xmm1
addss xmm2, xmm1
movaps xmm3, xmm5
mulss xmm3, xmm5
addss xmm3, xmm2
xorps xmm2, xmm2
cvtss2sd xmm2, xmm3
sqrtsd xmm2, xmm2
cvtsd2ss xmm2, xmm2
ucomiss xmm2, xmm1
jbe 0x1002779c
xorps xmm0, xmmword [0x10141310]
xorps xmm1, xmm1
cvtss2sd xmm1, xmm2
cvtss2sd xmm0, xmm0
sub esp, 0x10
movsd qword [esp + 8], xmm1
movsd qword [esp], xmm0
movss dword [esi + 0xc], xmm4
movss dword [esi + 8], xmm5
call sub.api_ms_win_crt_math_l1_1_0.dll_atan2
add esp, 0x10
fstp qword [esi + 0xf8]
movss xmm0, dword [esi + 0xc]
cvtss2sd xmm0, xmm0
movss xmm1, dword [esi + 8]
cvtss2sd xmm1, xmm1
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 + 0xf0]
movsd xmm0, qword [esi + 0xf8]
movhpd xmm0, qword [esi + 0xf0]
cvtpd2ps xmm0, xmm0
mulps xmm0, xmmword [0x101421b0]
mov eax, dword [0x1026fc70]
jmp 0x100277ad
xor ecx, ecx
ucomiss xmm0, xmm1
seta cl
movss xmm0, dword [ecx*4 + 0x101421a0]
mov ecx, dword [esi + 0x14]
movlps qword [ecx + 0x160], xmm0
mov dword [ecx + 0x168], 0
mov ecx, dword [0x1026fc98]
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
je 0x10027883
mov ecx, dword [esi + 0x14]
test byte [ecx + 0xc], 2
je 0x1002783e
mov ecx, dword [0x1026fc70]
movss xmm1, dword [ecx + 0x3fb0]
xorps xmm0, xmm0
ucomiss xmm1, xmm0
jne 0x1002783e
jp 0x1002783e
movss xmm1, dword [ecx + 0x3fb4]
ucomiss xmm1, xmm0
jne 0x1002783e
jp 0x1002783e
movss xmm0, dword [ecx + 0x3fb8]
xorps xmm1, xmm1
ucomiss xmm0, xmm1
jne 0x1002783e
jp 0x1002783e
mov cl, 1
cmp byte [eax + 0xe8], 0
jne 0x10027840
cmp dword [eax + 0xc8], 1
sete cl
jmp 0x10027840
xor ecx, ecx
movzx eax, cl
mov dword [esi + 8], eax
push eax
push 0
push 1
call fcn.1002f5f0
test al, al
je 0x10027868
mov ecx, dword [esi + 0x14]
call fcn.100292a0
inc eax
mov ecx, dword [esi + 0x14]
mov dword [ecx + 0x16c], eax
jmp 0x10027883
mov eax, dword [0x1026fcf8]
cmp dword [eax + 0x5c], 0xe
jl 0x10027883
push dword [esi + 8]
push 0xe
push 1
call fcn.1002f5f0
test al, al
jne 0x10027854
cmp byte [0x1027028c], 0
je 0x10028b60
mov eax, dword [0x1026fc70]
cmp byte [eax + 0x4005], 0
je 0x10028966
mov ecx, dword [esi + 0x14]
cmp byte [ecx + 0x188], 0
jne 0x10028966
mov ecx, dword [eax]
mov edx, dword [eax + 0x1e8]
mov ecx, dword [ecx]
cmp byte [edx + ecx], 0
je 0x100278d0
mov ecx, dword [ebp + 8]
add ecx, 0x30
mov dword [esi + 0x1c], ecx
mov ebx, dword [esi + 4]
jmp 0x10027934
mov ecx, dword [0x1026fc98]
mov edx, dword [eax + 0x108]
mov edi, dword [ecx + 0xc]
movzx edi, word [edx + edi]
add edi, 0xfffffff8
cmp di, 0x20
jae 0x100278f8
mov dl, 1
mov ebx, 0xc0000009
bt ebx, edi
jb 0x10027905
mov ecx, dword [ecx + 0x10]
cmp dword [ecx + 0xc8], 5
sete dl
mov ecx, dword [ebp + 8]
lea edi, [ecx + 0x30]
mov dword [esi + 0x1c], edi
mov ecx, dword [ecx + 0x30]
test cl, 2
mov ebx, dword [esi + 4]
jne 0x10027934
test dl, dl
je 0x10027934
mov edx, dword [esi + 0x14]
cmp byte [edx + 0x149], 0
je 0x10027934
or ecx, 0x800
mov edx, dword [esi + 0x1c]
mov dword [edx], ecx
lea edi, [ebx + 4]
mov ecx, dword [esi + 0x14]
add ecx, 0x160
mov dword [esi + 8], ecx
xorps xmm0, xmm0
movaps xmmword [esi + 0x340], xmm0
movaps xmmword [esi + 0x330], xmm0
movaps xmmword [esi + 0x320], xmm0
movaps xmmword [esi + 0x310], xmm0
lea edx, [esi + 0x350]
lea ecx, [esi + 0x3350]
nop
movups xmmword [edx + 0x20], xmm0
movups xmmword [edx + 0x10], xmm0
movups xmmword [edx], xmm0
movups xmmword [edx + 0x30], xmm0
movups xmmword [edx + 0x40], xmm0
movups xmmword [edx + 0x50], xmm0
movups xmmword [edx + 0x60], xmm0
movups xmmword [edx + 0x70], xmm0
movups xmmword [edx + 0x80], xmm0
movups xmmword [edx + 0x90], xmm0
movups xmmword [edx + 0xa0], xmm0
movups xmmword [edx + 0xb0], xmm0
movups xmmword [edx + 0xc0], xmm0
movups xmmword [edx + 0xd0], xmm0
movups xmmword [edx + 0xe0], xmm0
movups xmmword [edx + 0x110], xmm0
movups xmmword [edx + 0x100], xmm0
movups xmmword [edx + 0xf0], xmm0
movups xmmword [edx + 0x140], xmm0
movups xmmword [edx + 0x130], xmm0
movups xmmword [edx + 0x120], xmm0
movups xmmword [edx + 0x150], xmm0
movups xmmword [edx + 0x160], xmm0
movups xmmword [edx + 0x170], xmm0
movups xmmword [edx + 0x180], xmm0
movups xmmword [edx + 0x190], xmm0
movups xmmword [edx + 0x1a0], xmm0
movups xmmword [edx + 0x1b0], xmm0
movups xmmword [edx + 0x1c0], xmm0
movups xmmword [edx + 0x1d0], xmm0
movups xmmword [edx + 0x1e0], xmm0
movups xmmword [edx + 0x1f0], xmm0
movups xmmword [edx + 0x200], xmm0
movups xmmword [edx + 0x210], xmm0
movups xmmword [edx + 0x220], xmm0
movups xmmword [edx + 0x230], xmm0
movups xmmword [edx + 0x260], xmm0
movups xmmword [edx + 0x250], xmm0
movups xmmword [edx + 0x240], xmm0
movups xmmword [edx + 0x290], xmm0
movups xmmword [edx + 0x280], xmm0
movups xmmword [edx + 0x270], xmm0
movups xmmword [edx + 0x2c0], xmm0
movups xmmword [edx + 0x2b0], xmm0
movups xmmword [edx + 0x2a0], xmm0
movups xmmword [edx + 0x2f0], xmm0
movups xmmword [edx + 0x2e0], xmm0
movups xmmword [edx + 0x2d0], xmm0
add edx, 0x300
cmp edx, ecx
jne 0x10027970
xorps xmm0, xmm0
movups xmmword [ecx], xmm0
mov byte [ecx + 0x10], 0
mov edx, dword [ebx]
test edx, edx
je 0x10027af0
mov ecx, dword [eax + 0x184]
cmp byte [ecx + edx], 0
je 0x10027d83
mov edx, dword [ebx]
test edx, edx
je 0x10027af0
mov eax, dword [0x1026fc70]
mov ecx, dword [eax + 0x184]
cmp byte [ecx + edx], 0
je 0x10027ed7
mov eax, dword [edi + 8]
mov dword [esi + 0xc8], eax
movsd xmm0, qword [edi]
movsd qword [esi + 0xc0], xmm0
mov eax, dword [0x1026fc70]
mov ecx, dword [eax]
mov eax, dword [eax + 0x1b8]
mov dword [esi + 0xc], eax
mov eax, dword [ecx]
mov dword [esi + 0x10], eax
mov ecx, dword [0x10270288]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
mov dword [esi + 0x3378], 0
call eax
fstp dword [esi + 0xa8]
movss xmm0, dword [esi + 0xa8]
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x10]
movss xmm1, dword [eax + ecx + 8]
mulss xmm1, xmm0
movsd xmm2, qword [eax + ecx]
unpcklps xmm0, xmm0
mulps xmm0, xmm2
mov ecx, dword [esi + 0x14]
movsd xmm2, qword [ecx + 0x160]
subps xmm2, xmm0
movlps qword [ecx + 0x160], xmm2
movss xmm0, dword [ecx + 0x168]
subss xmm0, xmm1
movss dword [ecx + 0x168], xmm0
mov eax, dword [esi + 4]
mov eax, dword [eax]
sub esp, 0x14
mov edx, dword [esi + 0xc8]
mov dword [esp + 0x10], edx
movsd xmm0, qword [esi + 0xc0]
movsd qword [esp + 8], xmm0
mov edx, dword [esi + 8]
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.10029640
test al, al
je 0x10027d7b
mov eax, dword [0x1026fcf8]
cmp byte [eax + 0x2e], 0
je 0x10027be9
mov ecx, dword [esi + 0x14]
call fcn.10029200
mov ecx, dword [0x1026fd18]
mov dword [ecx + 0x16c], eax
mov ecx, dword [0x1026fcc8]
push 0
push dword [ebp + 8]
call fcn.1004d300
lea ecx, [esi + 0x100]
push 1
call fcn.1002f880
mov eax, dword [esi + 4]
mov ecx, dword [eax]
mov eax, dword [ecx + 8]
add ecx, 8
mov eax, dword [eax + 0x28]
mov dword [esi + 0x3378], 5
call eax
xorps xmm0, xmm0
movaps xmmword [esi + 0x250], xmm0
movaps xmmword [esi + 0x240], xmm0
movaps xmmword [esi + 0x230], xmm0
movaps xmmword [esi + 0x220], xmm0
movaps xmmword [esi + 0x210], xmm0
movaps xmmword [esi + 0x200], xmm0
movaps xmmword [esi + 0x1f0], xmm0
movaps xmmword [esi + 0x1e0], xmm0
movaps xmmword [esi + 0x1d0], xmm0
movaps xmmword [esi + 0x1c0], xmm0
movaps xmmword [esi + 0x1b0], xmm0
mov dword [esi + 0x261], 0
mov dword [esi + 0x25d], 0
movups xmmword [esi + 0x268], xmm0
movups xmmword [esi + 0x278], xmm0
movups xmmword [esi + 0x288], xmm0
movups xmmword [esi + 0x298], xmm0
movups xmmword [esi + 0x2a8], xmm0
movups xmmword [esi + 0x2b8], xmm0
movups xmmword [esi + 0x2c8], xmm0
movups xmmword [esi + 0x2d8], xmm0
mov dword [esi + 0x2ea], 0
mov dword [esi + 0x2e6], 0
movaps xmmword [esi + 0x2f0], xmm0
mov byte [esi + 0x300], 0
mov ecx, dword [0x102700e4]
mov edx, dword [ecx]
lea edi, [esi + 0x1b0]
push edi
push eax
call dword [edx + 0x20]
mov byte [esi + 0xc], al
mov eax, dword [esi + 4]
mov eax, dword [eax + 0x18]
lea ecx, [esi + 0xd0]
push dword [eax + 0x6370]
push ecx
call fcn.100460e0
add esp, 8
cmp byte [esi + 0xc], 0
je 0x100283b8
mov edi, dword [esi + 4]
movss xmm0, dword [edi + 0x10]
sub esp, 4
movss dword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_roundf
add esp, 4
fstp dword [esi + 0xa4]
mov ecx, dword [edi + 0x14]
mov eax, dword [edi + 0x18]
movss xmm0, dword [eax + 0x6418]
movss xmm1, dword [eax + 0x641c]
mulss xmm0, xmm0
xorps xmm2, xmm2
addss xmm2, xmm0
mulss xmm1, xmm1
addss xmm1, xmm2
cvttss2si eax, dword [esi + 0xa4]
xorps xmm0, xmm0
cvtss2sd xmm0, xmm1
xorps xmm1, xmm1
ucomisd xmm0, xmm1
mov dword [esi + 0x18], eax
mov dword [esi + 0x10], ecx
jb 0x10028011
sqrtsd xmm0, xmm0
jmp 0x1002802f
mov eax, dword [esi + 4]
jmp 0x10028948
mov eax, dword [eax + 0x1c]
cmp dword [eax + edx], 0
jle 0x10027ad5
mov dword [esi + 0xc], edi
lea ecx, [edx + 8]
mov dword [esi + 0x10], edx
mov eax, dword [edx + 8]
mov eax, dword [eax + 0x24]
mov dword [esi + 0x3378], 0
call eax
test al, al
mov ebx, dword [esi + 4]
mov edi, dword [esi + 0xc]
mov edx, dword [esi + 0x10]
jne 0x10027ad5
mov edi, dword [0x1026fc70]
mov eax, dword [edi + 0xdc]
mov eax, dword [eax + edx + 8]
mov dword [esi + 0x3354], eax
mov eax, dword [edi + 0xdc]
mov eax, dword [eax + edx + 0xc]
mov dword [esi + 0x3358], eax
mov byte [esi + 0x3360], 0
mov ecx, dword [edx + 0x290c]
mov dword [esi + 0x3350], ecx
mov eax, dword [edx + 0x2900]
test eax, eax
je 0x10027e20
shl ecx, 4
lea ecx, [ecx + ecx*2]
push ecx
push eax
lea eax, [esi + 0x350]
push eax
call sub.VCRUNTIME140.dll_memcpy
mov edx, dword [esi + 0x10]
add esp, 0xc
mov byte [esi + 0x3360], 1
mov eax, dword [edi + 0x18]
mov eax, dword [edx + eax + 4]
mov dword [esi + 0x335c], eax
mov eax, dword [edi + 0x2c]
mov ecx, dword [eax + edx + 8]
mov dword [esi + 0x18], edi
mov edi, edx
lea edx, [esi + 0x31c]
mov dword [edx + 0x24], ecx
movsd xmm0, qword [eax + edi]
movsd qword [edx + 0x1c], xmm0
mov eax, dword [edi + 0x3b0]
mov dword [edx + 0x18], eax
movsd xmm0, qword [edi + 0x3a8]
movsd qword [edx + 0x10], xmm0
mov ecx, dword [esi + 0x18]
mov eax, dword [ecx + 0x60]
movsd xmm0, qword [eax + edi]
movsd qword [esi + 0x310], xmm0
mov eax, dword [eax + edi + 8]
mov dword [esi + 0x318], eax
mov eax, dword [ecx + 0x64]
movsd xmm0, qword [eax + edi]
movsd 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 + 0x344]
mov dword [edx + 8], ecx
movsd xmm0, qword [eax + edi]
movsd qword [edx], xmm0
mov eax, dword [esi + 0x18]
mov eax, dword [eax + 0x208]
mov eax, dword [eax + edi]
test eax, eax
mov edi, dword [esi + 0xc]
je 0x10027ad5
movss xmm0, dword [eax + 0x80]
movss dword [esi + 0x328], xmm0
jmp 0x10027ad5
mov ecx, dword [ebx + 0x18]
mov eax, dword [eax + 0x1c]
cmp dword [eax + edx], 0
mov dword [esi + 0x3378], 0
jle 0x10027af0
mov dword [esi + 0x18], ecx
mov dword [esi + 0xc], edi
lea ecx, [edx + 8]
mov dword [esi + 0x10], edx
mov eax, dword [edx + 8]
call dword [eax + 0x24]
test al, al
mov edi, dword [esi + 0xc]
mov edx, dword [esi + 0x10]
mov ebx, dword [esi + 0x18]
jne 0x10027af0
cmp byte [ebx + 0x642b], 0
je 0x10027f58
mov eax, dword [edx + 0x2900]
test eax, eax
je 0x10027f58
mov ecx, dword [edx + 0x290c]
shl ecx, 4
lea ecx, [ecx + ecx*2]
push ecx
push ebx
push eax
call sub.VCRUNTIME140.dll_memcpy
mov edx, dword [esi + 0x10]
add esp, 0xc
mov eax, dword [0x1026fc70]
mov ecx, dword [eax + 0x2f4]
mov ecx, dword [ecx + 0xa]
mov ecx, dword [ecx]
mov eax, dword [eax + 0x18]
mov dword [edx + eax + 4], ecx
mov eax, dword [0x1026fc70]
mov edi, dword [eax + 0x2c]
mov ecx, edx
mov edx, dword [ebx + 0x6380]
mov dword [edi + ecx + 8], edx
movsd xmm0, qword [ebx + 0x6378]
movsd qword [edi + ecx], xmm0
mov edx, dword [ebx + 0x638c]
mov dword [ecx + 0x3b0], edx
lea edx, [ebx + 0x6378]
movsd xmm0, qword [ebx + 0x6384]
movsd qword [ecx + 0x3a8], xmm0
push edx
call dword [eax + 0x2f0]
mov ecx, dword [esi + 0x10]
mov eax, dword [ecx]
call dword [eax + 0xc]
test eax, eax
je 0x10027fcd
mov ecx, dword [esi + 0x18]
lea edx, [ecx + 0x63b0]
lea edi, [ecx + 0x63dc]
mov ebx, dword [0x1026fc70]
mov ecx, eax
push edi
push edx
call dword [ebx + 0x300]
mov eax, dword [esi + 0x18]
movss xmm0, dword [eax + 0x63bc]
mov dword [esi + 0x1b0], 0
movss dword [esi + 0x1b4], xmm0
mov dword [esi + 0x1b8], 0
mov eax, dword [0x1026fc70]
lea edx, [esi + 0x1b0]
mov ecx, dword [esi + 0x10]
push edx
call dword [eax + 0x2ec]
mov edi, dword [esi + 0xc]
jmp 0x10027af0
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 + 0xe8]
movsd xmm0, qword [esi + 0xe8]
cvtsd2ss xmm0, xmm0
sub esp, 4
movss dword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_roundf
add esp, 4
fstp dword [esi + 0xa0]
cvttss2si eax, dword [esi + 0xa0]
mov dword [esi + 0x6c], eax
lea eax, [esi + 0x110]
mov dword [esi + 0x3378], 6
push str._SHOT_INFO__player:
push eax
call fcn.1002f9f0
add esp, 8
lea ecx, [esi + 0x1c0]
push ecx
push eax
call fcn.1002f9f0
add esp, 8
push str._hb:
lea eax, [esi + 0x110]
push eax
call fcn.1002f9f0
add esp, 8
mov dword [esi + 0xc], eax
mov eax, dword [esi + 4]
mov eax, dword [eax + 0x14]
mov edi, 0x101685ec
cmp eax, 0x12
ja 0x100280b0
mov edi, dword [eax*4 + 0x1014211c]
xorps xmm0, xmm0
movaps xmmword [esi + 0x20], xmm0
mov dword [esi + 0x34], 0
mov dword [esi + 0x30], 0
push edi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
test eax, eax
js 0x10028c60
cmp eax, 0xf
ja 0x100280fc
mov dword [esi + 0x30], eax
mov dword [esi + 0x34], 0xf
mov ebx, eax
lea eax, [esi + 0x20]
push ebx
push edi
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add ebx, esi
add ebx, 0x20
jmp 0x10028160
mov dword [esi + 4], edi
mov dword [esi + 0x68], eax
or eax, 0xf
cmp eax, 0x17
mov ecx, 0x16
cmovae ecx, eax
cmp ecx, 0xfff
mov dword [esi + 0x64], ecx
jb 0x10028134
lea eax, [ecx + 0x24]
push eax
call fcn.100f13cd
add esp, 4
mov edi, eax
add edi, 0x23
and edi, 0xffffffe0
mov dword [edi - 4], eax
jmp 0x10028142
lea eax, [ecx + 1]
push eax
call fcn.100f13cd
add esp, 4
mov edi, eax
mov dword [esi + 0x20], edi
mov ebx, dword [esi + 0x68]
mov dword [esi + 0x30], ebx
mov eax, dword [esi + 0x64]
mov dword [esi + 0x34], eax
push ebx
push dword [esi + 4]
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add ebx, edi
mov byte [ebx], 0
cmp dword [esi + 0x34], 0x10
jb 0x1002816e
mov eax, dword [esi + 0x20]
jmp 0x10028171
lea eax, [esi + 0x20]
mov dword [esi + 0x3378], 8
push eax
push dword [esi + 0xc]
call fcn.1002f9f0
add esp, 8
mov eax, dword [esi + 0x34]
cmp eax, 0x10
jb 0x100281bf
mov ecx, dword [esi + 0x20]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x100281b5
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x10028b26
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.100f14b0
add esp, 8
mov dword [esi + 0x3378], 6
push 0x101695ed
lea eax, [esi + 0x110]
push eax
call fcn.1002f9f0
add esp, 8
mov dword [esi + 4], eax
lea eax, [esi + 0x20]
push dword [esi + 0x10]
push eax
call fcn.10019800
add esp, 8
mov eax, dword [esi + 0x30]
cmp dword [esi + 0x34], 0x10
lea ecx, [esi + 0x20]
jb 0x100281fe
mov ecx, dword [esi + 0x20]
mov dword [esi + 0x3378], 9
push eax
push ecx
push dword [esi + 4]
call fcn.10032190
add esp, 0xc
push 0x101695eb
push eax
call fcn.1002f9f0
add esp, 8
mov eax, dword [esi + 0x34]
cmp eax, 0x10
jb 0x1002825b
mov ecx, dword [esi + 0x20]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x10028251
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x10028b26
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.100f14b0
add esp, 8
mov dword [esi + 0x3378], 6
push str._damage:
lea eax, [esi + 0x110]
push eax
call fcn.1002f9f0
add esp, 8
mov dword [esi + 4], eax
lea eax, [esi + 0x20]
push dword [esi + 0x18]
push eax
call fcn.10019800
add esp, 8
mov eax, dword [esi + 0x30]
cmp dword [esi + 0x34], 0x10
lea ecx, [esi + 0x20]
jb 0x1002829a
mov ecx, dword [esi + 0x20]
mov dword [esi + 0x3378], 0xa
push eax
push ecx
push dword [esi + 4]
call fcn.10032190
add esp, 0xc
mov eax, dword [esi + 0x34]
cmp eax, 0x10
jb 0x100282e9
mov ecx, dword [esi + 0x20]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x100282df
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x10028b26
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.100f14b0
add esp, 8
mov dword [esi + 0x3378], 6
push str.__resolver:
lea eax, [esi + 0x110]
push eax
call fcn.1002f9f0
add esp, 8
cmp dword [esi + 0xe4], 0x10
lea ecx, [esi + 0xd0]
jb 0x1002831c
mov ecx, dword [esi + 0xd0]
push ecx
push eax
call fcn.1002f9f0
add esp, 8
push 0x10166895
push eax
call fcn.1002f9f0
add esp, 8
push str._animation_velocity:
lea eax, [esi + 0x110]
push eax
call fcn.1002f9f0
add esp, 8
mov dword [esi + 4], eax
lea eax, [esi + 0x20]
push dword [esi + 0x6c]
push eax
call fcn.10019800
add esp, 8
mov eax, dword [esi + 0x30]
cmp dword [esi + 0x34], 0x10
lea ecx, [esi + 0x20]
jb 0x10028369
mov ecx, dword [esi + 0x20]
mov dword [esi + 0x3378], 0xb
push eax
push ecx
push dword [esi + 4]
call fcn.10032190
add esp, 0xc
mov eax, dword [esi + 0x34]
cmp eax, 0x10
jb 0x100283b8
mov ecx, dword [esi + 0x20]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x100283ae
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x10028b26
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.100f14b0
add esp, 8
mov dword [esi + 0x7c], 0xcdc3c3c3
mov dword [esi + 0x3378], 6
lea eax, [esi + 0x20]
lea ecx, [esi + 0x100]
mov dword [esi + 0x10], eax
push eax
call fcn.1002fcd0
mov ebx, dword [0x1026fd1c]
mov eax, dword [0x1026fc70]
movss xmm0, dword [eax + 0x3fcc]
addss xmm0, dword [eax + 0x3fc8]
mov eax, dword [0x1026fc80]
bswap eax
mov edx, dword [0x1026fc84]
add edx, eax
mov ecx, dword [0x1026fc88]
ror edx, cl
movss xmm1, dword [edx]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
mov ecx, dword [0x1026fcf8]
mov ecx, dword [ecx + 0x54]
mov edx, dword [esi + 0x3c]
mov dword [esi + 4], edx
mov edx, dword [edx + 0x20]
mov dword [esi + 0xbc], eax
mov dword [esi + 0xb8], ecx
mov eax, 0x4010
add eax, dword [0x1026fc70]
mov dword [esi + 0xb4], edx
movss dword [esi + 0x40], xmm0
movss dword [esi + 0x80], xmm1
mov dword [esi + 0x3378], 7
lea edi, [esi + 0x40]
lea edx, [esi + 0x80]
mov dword [esi + 0xc], ebx
mov ecx, ebx
push edi
push edx
lea edx, [esi + 0xbc]
push edx
lea edx, [esi + 0xb8]
push edx
lea edx, [esi + 0xb4]
push edx
push eax
call fcn.10031710
mov ebx, dword [esi + 0xc]
cmp dword [ebx + 0x10], 0x80
jb 0x1002851a
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 0x100284e6
mov ecx, dword [edi + 0x309c]
lea ebx, [eax + 1]
cmp ebx, 0x1000
jb 0x100284d9
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x10028b26
add eax, 0x24
mov ebx, eax
mov ecx, edx
push ebx
push ecx
call fcn.100f14b0
add esp, 8
mov ebx, dword [esi + 0xc]
mov dword [edi + 0x30ac], 0
mov dword [edi + 0x30b0], 0xf
mov byte [edi + 0x309c], 0
add edi, 0xc
mov ecx, edi
call fcn.1001def0
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 + 0x1c]
or byte [eax], 1
mov eax, dword [0x1026fc70]
mov byte [eax + 0x3fbc], 1
mov byte [eax + 0x396], 1
cmp byte [eax + 0x4006], 0
je 0x100285fb
mov eax, dword [0x1026fcd4]
test byte [eax + 0x58], 8
je 0x100285e1
mov eax, dword [0x10270110]
cmp dword [esi + 0x34], 0x10
jb 0x10028560
mov ecx, dword [esi + 0x20]
mov dword [esi + 0x10], ecx
mov ecx, dword [eax]
lea edx, [esi + 0x7c]
push dword [esi + 0x10]
push edx
push eax
call dword [ecx + 0x64]
add esp, 0xc
mov ecx, 0xe1a86bcf
mov eax, 0x46331745
mov edx, 0x46331745
mov dword [esi + 0x84], edx
mov dword [esi + 0x80], ecx
mov ecx, 0x9acbe06
mov edx, 0xe5092430
mov edi, 0xe1a86bc5
mov dword [esi + 0x44], eax
mov dword [esi + 0x40], edi
mov dword [esi + 0x8c], edx
mov dword [esi + 0x4c], edx
mov dword [esi + 0x88], ecx
mov dword [esi + 0x48], ecx
xor eax, eax
lea ecx, [esi + 0x40]
mov eax, dword [0x10270110]
movaps xmm0, xmmword [esi + 0x80]
xorps xmm0, xmmword [ecx]
movaps xmmword [esi + 0x80], xmm0
mov ecx, dword [eax]
lea edx, [esi + 0x80]
push edx
lea edx, [esi + 0x7c]
push edx
push eax
call dword [ecx + 0x64]
add esp, 0xc
mov ecx, dword [0x1026fce0]
push 0
mov eax, dword [esi + 4]
push dword [eax + 0x18]
push dword [eax]
call fcn.1005ee70
mov eax, dword [0x1026fc70]
mov ecx, dword [esi + 4]
mov ecx, dword [ecx + 0x18]
movss xmm0, dword [ecx + 0x6360]
addss xmm0, dword [eax + 0x3fc4]
mov eax, dword [0x1026fc80]
bswap eax
mov edx, dword [0x1026fc84]
add edx, eax
mov ecx, dword [0x1026fc88]
ror edx, cl
movss xmm1, dword [edx + 0x20]
mov dword [esi + 0x40], 0x5c846cd5
mov eax, dword [esi + 0x40]
bswap eax
mov dword [esi + 0x40], eax
add dword [esi + 0x40], 0x34577ba4
mov eax, dword [esi + 0x40]
rol eax, 0x11
mov dword [esi + 0x40], eax
mov eax, dword [esi + 0x40]
cvtsi2ss xmm2, eax
mov dword [esi + 0x40], 0xa4356fe2
mov eax, dword [esi + 0x40]
bswap eax
mov dword [esi + 0x40], eax
add dword [esi + 0x40], 0xe190ca65
mov eax, dword [esi + 0x40]
rol eax, 0xa
mov dword [esi + 0x40], eax
mov eax, dword [esi + 0x40]
cvtsi2ss xmm3, eax
unpcklps xmm0, xmm2
unpcklps xmm1, xmm3
divps xmm0, xmm1
movaps xmm1, xmm0
shufps xmm1, xmm0, 0x55
addss xmm1, xmm0
cvttss2si eax, xmm1
mov ecx, dword [ebp + 8]
mov dword [ecx + 8], eax
mov eax, dword [esi + 8]
movsd xmm0, qword [eax]
movsd qword [ecx + 0xc], xmm0
mov eax, dword [eax + 8]
mov dword [ecx + 0x14], eax
mov eax, dword [0x1026fc70]
mov ecx, dword [eax]
mov eax, dword [eax + 0x1b8]
mov dword [esi + 4], eax
mov eax, dword [ecx]
mov dword [esi + 8], eax
mov ecx, dword [0x10270288]
mov eax, dword [ecx]
call dword [eax + 0x30]
fstp dword [esi + 0x9c]
movss xmm0, dword [esi + 0x9c]
mov eax, dword [esi + 4]
mov ecx, dword [esi + 8]
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 + 0x98]
movss xmm0, dword [esi + 0x98]
movsd xmm1, qword [ebx + 0xc]
movaps xmm2, xmmword [0x101421c0]
movaps xmm3, xmmword [0x101421d0]
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 [0x101421e0]
maxss xmm1, xmm0
movss xmm2, dword [0x101421e4]
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 [esi + 0x34]
cmp eax, 0x10
jb 0x10028802
mov ecx, dword [esi + 0x20]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x100287f8
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x10028b26
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.100f14b0
add esp, 8
mov eax, dword [esi + 0xe4]
cmp eax, 0x10
jb 0x10028840
mov ecx, dword [esi + 0xd0]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x10028836
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x10028b26
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.100f14b0
add esp, 8
mov eax, dword [esi + 0x100]
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 + 0x100]
mov eax, dword [eax + 4]
lea ecx, [eax - 0x68]
mov dword [esi + eax + 0xfc], 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 + 0x154], 1
je 0x100288d2
mov eax, dword [esi + 0x138]
mov eax, dword [eax]
mov ecx, 0x48
test eax, eax
jne 0x10028898
mov eax, dword [esi + 0x134]
mov eax, dword [eax]
mov ecx, 0x44
mov ecx, dword [esi + ecx + 0x100]
add eax, dword [ecx]
mov ecx, dword [esi + 0x124]
mov ecx, dword [ecx]
sub eax, ecx
cmp eax, 0x1000
jb 0x100288c8
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x10028b26
add eax, 0x23
mov ecx, edx
push eax
push ecx
call fcn.100f14b0
add esp, 8
lea edi, [esi + 0x168]
lea ecx, [esi + 0x118]
mov eax, dword [esi + 0x124]
mov dword [eax], 0
mov eax, dword [esi + 0x134]
mov dword [eax], 0
mov eax, dword [esi + 0x144]
mov dword [eax], 0
mov eax, dword [esi + 0x128]
mov dword [eax], 0
mov eax, dword [esi + 0x138]
mov dword [eax], 0
mov eax, dword [esi + 0x148]
mov dword [eax], 0
mov dword [esi + 0x150], 0
and byte [esi + 0x154], 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 + 0x3c]
mov dword [esi + 4], eax
mov edx, dword [eax]
test edx, edx
je 0x10028966
mov eax, dword [0x1026fc70]
mov ecx, dword [eax + 0x184]
cmp byte [ecx + edx], 0
je 0x100289e2
mov eax, dword [esi + 0x14]
mov edi, dword [eax + 0x170]
mov ebx, dword [eax + 0x174]
cmp edi, ebx
je 0x100289a0
nop dword [eax]
mov ecx, edi
call fcn.1001def0
add edi, 0x3090
cmp edi, ebx
jne 0x10028980
mov ecx, dword [esi + 0x14]
mov eax, dword [ecx + 0x170]
mov dword [ecx + 0x174], eax
mov ebx, dword [esi + 4]
mov edi, dword [ebx + 0x1c]
test edi, edi
je 0x100289c3
lock dec dword [edi + 4]
jne 0x100289c3
mov eax, dword [edi]
mov ecx, edi
call dword [eax]
lock dec dword [edi + 8]
jne 0x100289c3
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
push ebx
call fcn.100f14ab
add esp, 4
mov eax, dword [esi + 0x3370]
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 0x10028966
lea ecx, [edx + 8]
mov eax, dword [edx + 8]
mov eax, dword [eax + 0x24]
mov dword [esi + 0x3378], 0
mov dword [esi + 8], edx
call eax
mov edi, dword [esi + 8]
test al, al
jne 0x10028966
mov ecx, dword [esi + 0x3354]
mov eax, dword [0x1026fc70]
mov edx, dword [eax + 0xdc]
mov dword [edx + edi + 8], ecx
mov ecx, dword [esi + 0x3358]
mov edx, dword [eax + 0xdc]
mov dword [edx + edi + 0xc], ecx
cmp byte [esi + 0x3360], 0
je 0x10028a67
mov eax, dword [esi + 0x3350]
shl eax, 4
lea eax, [eax + eax*2]
push eax
lea eax, [esi + 0x350]
push eax
push dword [edi + 0x2900]
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [0x1026fc70]
mov ecx, dword [esi + 0x335c]
mov eax, dword [eax + 0x18]
mov dword [edi + eax + 4], ecx
mov eax, dword [0x1026fc70]
mov eax, dword [eax + 0x2c]
lea edx, [esi + 0x31c]
mov ecx, dword [edx + 0x24]
mov dword [eax + edi + 8], ecx
movsd xmm0, qword [edx + 0x1c]
movsd qword [eax + edi], xmm0
mov eax, dword [edx + 0x18]
mov dword [edi + 0x3b0], eax
movsd xmm0, qword [edx + 0x10]
movsd qword [edi + 0x3a8], xmm0
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0xc]
mov ecx, dword [esi + 8]
test eax, eax
je 0x10028ad6
mov edx, dword [0x1026fc70]
mov ecx, eax
lea eax, [esi + 0x31c]
push eax
lea eax, [esi + 0x310]
push eax
call dword [edx + 0x300]
mov ecx, dword [esi + 8]
movss xmm0, dword [esi + 0x328]
mov dword [esi + 0x1b0], 0
movss dword [esi + 0x1b4], xmm0
mov dword [esi + 0x1b8], 0
mov eax, dword [0x1026fc70]
lea edx, [esi + 0x1b0]
push edx
call dword [eax + 0x2ec]
mov ecx, dword [esi + 8]
mov eax, dword [0x1026fc70]
lea edx, [esi + 0x344]
push edx
call dword [eax + 0x2f0]
jmp 0x10028966
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
mov dword [ebx + 0x30], 0x7ffffffe
mov dword [esi + 0x3378], 1
push 6
call sub.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_
add esp, 4
mov dword [esi + 0x3378], 1
push 5
call sub.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_
add esp, 4
call fcn.10031090
mov eax, 0x91c90eb2
mov ecx, 0x346c792a
mov dword [esi + 0x1b4], ecx
mov dword [esi + 0x1b0], eax
mov eax, 0x60c3dd63
mov ecx, 0x867a7b5c
mov dword [esi + 0x1bc], ecx
mov dword [esi + 0x1b8], eax
mov eax, 0xb5b4a2e
mov ecx, 0xfc7715a3
mov dword [esi + 0x1c4], ecx
mov dword [esi + 0x1c0], eax
mov eax, 0x4c154288
mov ecx, 0x4dd8bbbe
mov edx, 0xe1a86bc5
mov edi, 0x46331745
mov dword [esi + 0x314], edi
mov dword [esi + 0x310], edx
mov edx, 0x9acbe06
mov edi, 0xe5092430
mov dword [esi + 0x31c], edi
mov edi, 0xfc7715a3
mov dword [esi + 0x318], edx
mov edx, 0xb3e264f
mov dword [esi + 0x324], edi
mov dword [esi + 0x320], edx
mov byte [0x1027028c], 1
mov dword [esi + 0x1cc], ecx
mov dword [esi + 0x1c8], eax
mov dword [esi + 0x32c], ecx
mov dword [esi + 0x328], eax
xor eax, eax
lea edx, [esi + 0x310]
mov ecx, dword [0x10270110]
movaps xmm0, xmmword [esi + 0x1b0]
xorps xmm0, xmmword [edx]
movaps xmmword [esi + 0x1b0], xmm0
movaps xmm0, xmmword [esi + 0x1c0]
xorps xmm0, xmmword [edx + 0x10]
movaps xmmword [esi + 0x1c0], xmm0
mov eax, dword [ecx]
mov eax, dword [eax + 0x40]
mov dword [esi + 0x3378], 4
lea edx, [esi + 0x1b0]
push edx
call eax
mov dword [0x10270288], eax
jmp 0x10027890
call fcn.100190e0
nop word cs:[eax + eax]
push ebp
sub esp, 0x18
lea esi, [ebp - 0x337c]
mov ebp, dword [esi + 0x3368]
mov byte [0x1027028c], 0
add esp, 0x18
pop ebp
ret