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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
mov eax, 0x3390
call fcn.100ea210
mov esi, esp
mov dword [esi + 0x3378], ebp
mov ebx, ecx
mov dword [esi + 0x337c], esp
mov dword [esi + 0x3388], 0xffffffff
lea eax, [esi + 0x3380]
mov dword [esi + 0x3384], 0x100338c0
mov ecx, dword fs:[0]
mov dword [esi + 0x3380], ecx
mov dword fs:[0], eax
push 0x24
call fcn.100e9fad
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 + 0x48]
mov ecx, 0x8421085
mul ecx
mov ecx, edx
mov dword [esi + 0x44], edi
lea edi, [esi + 0x60]
mov eax, edi
mov edx, 0x8421085
mul edx
mov eax, dword [0x102a2304]
mov byte [eax + 8], 0
lea eax, [esi + 0x48]
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, 0x48
mov dword [esi + 0x58], eax
lea eax, [esi + edi + 0x60]
mov dword [esi + 0x9c], eax
mov edx, dword [ebx + 0x170]
mov dword [esi + 0x18], ebx
mov eax, dword [ebx + 0x174]
mov dword [esi + 0x5c], eax
jmp 0x10025e99
mov eax, dword [edi + 0x10]
mov edx, dword [esi + 0x44]
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 + 8]
mov dword [edx + 0x20], eax
mov eax, dword [edx]
mov ecx, dword [0x102a22ac]
mov ecx, dword [ecx + 0x1c]
xorps xmm0, xmm0
cvtsi2ss xmm0, dword [ecx + eax]
movss xmm1, dword [edx + 0x10]
ucomiss xmm1, xmm0
jae 0x1002674a
mov edx, dword [esi + 8]
add edx, 0x3090
cmp edx, dword [esi + 0x5c]
je 0x10026745
lea eax, [edx + 0x3c]
mov dword [esi + 0x1c], eax
mov eax, dword [edx + 0xc]
mov edi, dword [eax + 0x20]
test edi, edi
mov dword [esi + 8], edx
je 0x10025eca
mov eax, dword [0x102a22ac]
mov ecx, dword [eax + 0x184]
cmp byte [ecx + edi], 0
je 0x10026220
cmp byte [edx + 0x18], 0
je 0x10025f00
mov edi, dword [edx + 0x10]
cmp byte [edi + 0x642b], 0
je 0x10025f00
mov eax, dword [edx + 0xc]
mov edx, dword [eax + 0x20]
test edx, edx
je 0x10025f00
mov eax, dword [0x102a22ac]
mov ecx, dword [eax + 0x184]
cmp byte [ecx + edx], 0
je 0x100265de
nop dword [eax + eax]
mov eax, dword [0x102a22a4]
mov dword [esi + 0xc], eax
mov dword [esi + 0x3388], 0
push 0x18
call fcn.100e9fad
add esp, 4
mov dword [eax + 4], 1
mov dword [eax + 8], 1
mov dword [esi + 0x10], eax
mov dword [eax], vtable.std::_Ref_count_obj2_class_std::packaged_task_void____cdecl___void___.0
mov dword [esi + 0x3388], 3
push 0xa8
call fcn.100e9fad
add esp, 4
mov edi, eax
mov ebx, dword [esi + 0x10]
mov eax, ebx
add eax, 0xc
mov dword [esi + 0x40], eax
mov dword [edi], vtable.std::_Associated_state_int_.0
movaps xmm0, xmmword [0x10147a50]
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], 0x10148354
mov ecx, dword [esi + 8]
mov dword [edi + 0x84], ecx
mov dword [edi + 0xa4], eax
mov eax, dword [esi + 0x40]
mov dword [esi + 0x320], eax
mov dword [ebx + 0xc], edi
mov byte [ebx + 0x10], 0
mov dword [esi + 0x324], ebx
mov byte [ebx + 0x14], 1
mov dword [esi + 0xb4], edi
mov byte [esi + 0xb8], 1
lock inc dword [edi + 4]
mov ebx, dword [esi + 0xc]
lea eax, [ebx + 4]
mov dword [esi + 0x40], eax
push eax
call sub.MSVCP140.dll__Mtx_lock
add esp, 4
test eax, eax
jne 0x10027b97
cmp dword [ebx + 0x30], 0x7fffffff
je 0x10027b7c
mov dword [esi + 0x1c0], 0
mov dword [esi + 0x1c4], 0
mov eax, dword [esi + 0x324]
test eax, eax
je 0x10026060
lock inc dword [eax + 4]
mov edi, dword [esi + 0x324]
jmp 0x10026062
xor edi, edi
mov eax, dword [esi + 0x320]
mov dword [esi + 0x10], eax
mov dword [esi + 0x1c0], eax
mov dword [esi + 0x1c4], edi
mov edx, dword [ebx + 0x44]
mov eax, dword [ebx + 0x4c]
lea ecx, [eax + 1]
cmp edx, ecx
mov ecx, edx
ja 0x100260a9
mov dword [esi + 0x14], edi
lea ecx, [ebx + 0x3c]
mov dword [esi + 0x3388], 2
push 1
call fcn.10030960
mov ebx, dword [esi + 0xc]
mov ecx, dword [ebx + 0x44]
mov eax, dword [ebx + 0x4c]
mov edi, dword [esi + 0x14]
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 0x100260ff
mov dword [esi + 0xa0], edx
mov dword [esi + 0x54], ecx
mov dword [esi + 0x14], edi
mov dword [esi + 0x3388], 2
push 0x28
call fcn.100e9fad
add esp, 4
mov ebx, dword [esi + 0xc]
mov ecx, dword [ebx + 0x40]
mov edx, dword [esi + 0x54]
mov dword [ecx + edx*4], eax
mov eax, dword [ebx + 0x44]
dec eax
and eax, dword [esi + 0xa0]
mov ecx, dword [ebx + 0x40]
mov eax, dword [ecx + eax*4]
mov edi, dword [esi + 0x14]
mov dword [eax + 0x24], 0
mov dword [eax], 0x10148374
mov dword [eax + 4], 0
mov dword [eax + 8], 0
test edi, edi
je 0x10026140
lock inc dword [edi + 4]
mov ecx, dword [esi + 0x1c0]
mov dword [esi + 0x10], ecx
mov edi, dword [esi + 0x1c4]
jmp 0x10026142
xor edi, edi
mov ecx, dword [esi + 0x10]
mov dword [eax + 4], ecx
mov dword [eax + 8], edi
mov dword [eax + 0x24], eax
inc dword [ebx + 0x4c]
test edi, edi
je 0x10026170
lock dec dword [edi + 4]
jne 0x10026170
mov eax, dword [edi]
mov ecx, edi
call dword [eax]
lock dec dword [edi + 8]
jne 0x10026170
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
nop
push dword [esi + 0x40]
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 0x10027b76
mov eax, dword [ebx + 0x38]
test eax, eax
je 0x100261b6
add ebx, 0x34
cmp eax, 2
jl 0x100261b0
push ebx
call sub.MSVCP140_ATOMIC_WAIT.dll___std_atomic_notify_one_direct
jmp 0x100261b6
push ebx
call sub.MSVCP140_ATOMIC_WAIT.dll___std_atomic_notify_all_direct
mov edi, dword [esi + 0x324]
test edi, edi
je 0x100261e0
lock dec dword [edi + 4]
jne 0x100261e0
mov eax, dword [edi]
mov ecx, edi
call dword [eax]
lock dec dword [edi + 8]
jne 0x100261e0
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
nop dword [eax]
mov eax, dword [esi + 0xb4]
test eax, eax
je 0x10026360
lock dec dword [eax + 4]
jne 0x10026360
mov ecx, dword [eax + 0x78]
test ecx, ecx
je 0x1002634f
mov edx, dword [ecx]
push eax
call dword [edx]
mov edi, dword [0x102a22a4]
jmp 0x10026375
mov eax, dword [eax + 0x1c]
cmp dword [eax + edi], 0
jle 0x10025eca
lea ecx, [edi + 8]
mov dword [esi + 0xc], edi
mov eax, dword [edi + 8]
mov eax, dword [eax + 0x24]
mov dword [esi + 0x3388], 0
call eax
test al, al
mov edx, dword [esi + 8]
mov ebx, dword [esi + 0xc]
jne 0x10025eca
mov edi, dword [0x102a22ac]
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 0x100262b7
mov edx, dword [esi + 8]
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 + 8]
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 + 0x1c]
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 0x10025eca
movss xmm0, dword [eax + 0x80]
movss dword [edx + 0x54], xmm0
jmp 0x10025eca
mov edx, dword [eax]
mov ecx, eax
push 1
call dword [edx]
nop word [eax + eax]
mov edi, dword [0x102a22a4]
jmp 0x10026375
call sub.MSVCP140.dll__Thrd_yield
cmp dword [edi + 0x50], 0
jne 0x10026370
mov eax, dword [esi + 8]
mov eax, dword [eax + 0xc]
mov edx, dword [eax + 0x20]
test edx, edx
je 0x1002639d
mov eax, dword [0x102a22ac]
mov ecx, dword [eax + 0x184]
cmp byte [ecx + edx], 0
je 0x100264a0
mov dword [esi + 0x48], 0
mov dword [esi + 0x4c], 0
mov dword [esi + 0x50], 0
lea edx, [esi + 0x48]
mov dword [esi + 0x4c], edx
mov ecx, dword [esi + 0x58]
mov dword [esi + 0x50], ecx
mov edi, dword [esi + 8]
mov eax, edi
rol eax, cl
sub eax, edx
bswap eax
mov dword [esi + 0x48], eax
lea eax, [edi + 0x24]
mov ecx, dword [esi + 0x48]
mov edx, dword [esi + 0x4c]
mov edi, dword [esi + 0x50]
mov dword [esi + 0x3388], 0
push 0
push eax
push edi
push edx
push ecx
call fcn.1002ad80
test al, al
je 0x10025e90
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
mov dword [esi + 0x60], 0
mov dword [esi + 0x64], 0
mov dword [esi + 0x68], 0
lea edi, [esi + 0x60]
mov dword [esi + 0x64], edi
mov edx, dword [esi + 8]
mov ecx, dword [esi + 0x9c]
rol edx, cl
mov dword [esi + 0x68], ecx
sub edx, edi
bswap edx
mov dword [esi + 0x60], edx
mov ecx, dword [esi + 0x18]
push eax
push dword [esi + 0x68]
push dword [esi + 0x64]
push dword [esi + 0x60]
call fcn.1002cba0
mov edi, eax
test eax, eax
je 0x10025e90
mov eax, dword [esi + 0x44]
cmp dword [eax], 0
je 0x1002645e
cvtsi2ss xmm0, dword [edi + 0x18]
ucomiss xmm0, dword [eax + 0x10]
jbe 0x10025e90
mov edx, dword [esi + 8]
mov ecx, dword [edx + 0xc]
mov ecx, dword [ecx + 0x20]
mov dword [eax], ecx
xorps xmm0, xmm0
cvtsi2ss xmm0, dword [edi + 0x18]
movss dword [eax + 0x10], xmm0
cmp byte [edx + 0x18], 0
je 0x10027bab
mov ecx, dword [edx + 0x14]
test ecx, ecx
je 0x10026709
lock inc dword [ecx + 4]
mov ecx, dword [edx + 0x14]
jmp 0x1002670b
mov eax, dword [eax + 0x1c]
cmp dword [eax + edx], 0
mov dword [esi + 0x3388], 0
jle 0x1002639d
lea ecx, [edx + 8]
mov eax, dword [edx + 8]
mov dword [esi + 0xc], edx
call dword [eax + 0x24]
mov ebx, dword [esi + 0xc]
test al, al
jne 0x1002639d
mov edi, dword [esi + 8]
mov ecx, dword [edi + 0x3080]
mov eax, dword [0x102a22ac]
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 0x10026528
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 + 8]
add esp, 0xc
mov eax, dword [0x102a22ac]
mov ecx, dword [edx + 0x3088]
mov eax, dword [eax + 0x18]
mov dword [ebx + eax + 4], ecx
mov eax, dword [0x102a22ac]
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 + 0xc]
test eax, eax
je 0x1002658d
mov ecx, dword [esi + 8]
lea edx, [ecx + 0x48]
mov edi, dword [0x102a22ac]
mov ecx, eax
push edx
push dword [esi + 0x1c]
call dword [edi + 0x300]
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 8]
movss xmm0, dword [eax + 0x54]
mov dword [esi + 0x320], 0
movss dword [esi + 0x324], xmm0
mov dword [esi + 0x328], 0
mov eax, dword [0x102a22ac]
lea edx, [esi + 0x320]
push edx
call dword [eax + 0x2ec]
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 8]
add eax, 0x70
mov edx, dword [0x102a22ac]
push eax
call dword [edx + 0x2f0]
jmp 0x1002639d
mov eax, dword [eax + 0x1c]
cmp dword [eax + edx], 0
mov dword [esi + 0x3388], 0
jle 0x10025f00
mov dword [esi + 0x10], edi
lea ecx, [edx + 8]
mov dword [esi + 0xc], edx
mov eax, dword [edx + 8]
call dword [eax + 0x24]
test al, al
mov edi, dword [esi + 0x10]
mov ebx, dword [esi + 0xc]
jne 0x10025f00
cmp byte [edi + 0x642b], 0
je 0x10026653
mov eax, dword [ebx + 0x2900]
test eax, eax
je 0x10026653
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 [0x102a22ac]
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 [0x102a22ac]
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 + 0xc]
mov eax, dword [ecx]
call dword [eax + 0xc]
test eax, eax
je 0x100266c8
mov ecx, dword [esi + 0x10]
lea edx, [ecx + 0x63b0]
lea edi, [ecx + 0x63dc]
mov ebx, dword [0x102a22ac]
mov ecx, eax
push edi
push edx
call dword [ebx + 0x300]
mov eax, dword [esi + 0x10]
movss xmm0, dword [eax + 0x63bc]
mov dword [esi + 0x320], 0
movss dword [esi + 0x324], xmm0
mov dword [esi + 0x328], 0
mov eax, dword [0x102a22ac]
mov ecx, dword [esi + 0xc]
lea edx, [esi + 0x320]
push edx
call dword [eax + 0x2ec]
jmp 0x10025f00
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 0x10025e50
lock dec dword [ebx + 4]
jne 0x10025e50
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax]
lock dec dword [ebx + 8]
jne 0x10025e50
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 4]
jmp 0x10025e50
mov edx, dword [esi + 0x44]
mov eax, dword [edx]
test eax, eax
mov dword [esi + 8], edx
je 0x100279ba
cmp dword [edx + 0x18], 0
je 0x100279ba
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 [0x102a2338]
mov dword [esi + 0x3388], 0
sub esp, 0xc
mov edx, dword [esi + 0x18]
mov eax, dword [edx + 0x168]
mov dword [esp + 8], eax
movsd xmm0, qword [edx + 0x160]
movsd qword [esp], xmm0
call fcn.100414c0
mov eax, dword [0x102a22ac]
mov ecx, dword [esi + 8]
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 0x1002688c
xorps xmm0, xmmword [0x10146bb0]
xorps xmm1, xmm1
cvtss2sd xmm1, xmm2
cvtss2sd xmm0, xmm0
sub esp, 0x10
movsd qword [esp + 8], xmm1
movsd qword [esp], xmm0
movss dword [esi + 0x10], xmm4
movss dword [esi + 0xc], xmm5
call sub.api_ms_win_crt_math_l1_1_0.dll_atan2
add esp, 0x10
fstp qword [esi + 0xf0]
movss xmm0, dword [esi + 0x10]
cvtss2sd xmm0, xmm0
movss xmm1, dword [esi + 0xc]
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 + 0xe8]
movsd xmm0, qword [esi + 0xf0]
movhpd xmm0, qword [esi + 0xe8]
cvtpd2ps xmm0, xmm0
mulps xmm0, xmmword [0x10147a70]
mov eax, dword [0x102a22ac]
jmp 0x1002689d
xor ecx, ecx
ucomiss xmm0, xmm1
seta cl
movss xmm0, dword [ecx*4 + 0x10147a60]
mov ecx, dword [esi + 0x18]
movlps qword [ecx + 0x160], xmm0
mov dword [ecx + 0x168], 0
mov ecx, dword [0x102a22d4]
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 0x10026973
mov ecx, dword [esi + 0x18]
test byte [ecx + 0xc], 2
je 0x1002692e
mov ecx, dword [0x102a22ac]
movss xmm1, dword [ecx + 0x3fb0]
xorps xmm0, xmm0
ucomiss xmm1, xmm0
jne 0x1002692e
jp 0x1002692e
movss xmm1, dword [ecx + 0x3fb4]
ucomiss xmm1, xmm0
jne 0x1002692e
jp 0x1002692e
movss xmm0, dword [ecx + 0x3fb8]
xorps xmm1, xmm1
ucomiss xmm0, xmm1
jne 0x1002692e
jp 0x1002692e
mov cl, 1
cmp byte [eax + 0xe8], 0
jne 0x10026930
cmp dword [eax + 0xc8], 1
sete cl
jmp 0x10026930
xor ecx, ecx
movzx eax, cl
mov dword [esi + 0xc], eax
push eax
push 0
push 1
call fcn.1002d170
test al, al
je 0x10026958
mov ecx, dword [esi + 0x18]
call fcn.10028200
inc eax
mov ecx, dword [esi + 0x18]
mov dword [ecx + 0x16c], eax
jmp 0x10026973
mov eax, dword [0x102a233c]
cmp dword [eax + 0x5c], 0xe
jl 0x10026973
push dword [esi + 0xc]
push 0xe
push 1
call fcn.1002d170
test al, al
jne 0x10026944
mov eax, dword [0x102a22ac]
cmp byte [eax + 0x4005], 0
je 0x100279ba
mov ecx, dword [esi + 0x18]
cmp byte [ecx + 0x188], 0
jne 0x100279ba
mov ecx, dword [eax]
mov edx, dword [eax + 0x1e8]
mov ecx, dword [ecx]
cmp byte [edx + ecx], 0
je 0x100269b3
mov ecx, dword [ebp + 8]
add ecx, 0x30
mov dword [esi + 0x40], ecx
mov ebx, dword [esi + 8]
jmp 0x10026a14
mov ecx, dword [0x102a22d4]
mov edx, dword [eax + 0x108]
mov edi, dword [ecx + 0xc]
movzx edi, word [edx + edi]
add edi, 0xfffffff8
cmp di, 0x20
jae 0x100269db
mov dl, 1
mov ebx, 0xc0000009
bt ebx, edi
jb 0x100269e8
mov ecx, dword [ecx + 0x10]
cmp dword [ecx + 0xc8], 5
sete dl
mov ecx, dword [ebp + 8]
lea edi, [ecx + 0x30]
mov ecx, dword [ecx + 0x30]
test cl, 2
mov ebx, dword [esi + 8]
mov dword [esi + 0x40], edi
jne 0x10026a14
test dl, dl
je 0x10026a14
mov edx, dword [esi + 0x18]
cmp byte [edx + 0x149], 0
je 0x10026a14
or ecx, 0x800
mov dword [edi], ecx
lea ecx, [ebx + 4]
mov dword [esi + 0xc], ecx
mov ecx, dword [esi + 0x18]
lea edi, [ecx + 0x160]
xorps xmm0, xmm0
movaps xmmword [esi + 0x350], xmm0
movaps xmmword [esi + 0x340], xmm0
movaps xmmword [esi + 0x330], xmm0
movaps xmmword [esi + 0x320], xmm0
lea edx, [esi + 0x360]
lea ecx, [esi + 0x3360]
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 0x10026a50
xorps xmm0, xmm0
movups xmmword [ecx], xmm0
mov byte [ecx + 0x10], 0
mov edx, dword [ebx]
test edx, edx
mov dword [esi + 0x10], edi
je 0x10026bd3
mov ecx, dword [eax + 0x184]
cmp byte [ecx + edx], 0
je 0x10026dd6
mov edx, dword [ebx]
test edx, edx
je 0x10026bd3
mov eax, dword [0x102a22ac]
mov ecx, dword [eax + 0x184]
cmp byte [ecx + edx], 0
je 0x10026f27
mov eax, dword [ebx]
mov dword [esi + 0x3388], 0
sub esp, 0x14
mov edx, dword [esi + 0xc]
mov ecx, dword [edx + 8]
mov dword [esp + 0x10], ecx
movsd xmm0, qword [edx]
movsd qword [esp + 8], xmm0
mov dword [esp + 4], edi
mov dword [esp], eax
mov ecx, dword [esi + 0x18]
call fcn.10028540
test al, al
je 0x10026dce
mov eax, dword [0x102a233c]
cmp byte [eax + 0x2e], 0
je 0x10026c3c
mov ecx, dword [esi + 0x18]
call fcn.10028160
mov ecx, dword [0x102a235c]
mov dword [ecx + 0x16c], eax
mov ecx, dword [0x102a2304]
push 0
push dword [ebp + 8]
call fcn.1004af80
lea ecx, [esi + 0x110]
push 1
call fcn.1002d400
mov eax, dword [esi + 8]
mov ecx, dword [eax]
mov eax, dword [ecx + 8]
add ecx, 8
mov eax, dword [eax + 0x28]
mov dword [esi + 0x3388], 4
call eax
xorps xmm0, xmm0
movaps xmmword [esi + 0x260], 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
mov dword [esi + 0x271], 0
mov dword [esi + 0x26d], 0
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
movups xmmword [esi + 0x2e8], xmm0
mov dword [esi + 0x2fa], 0
mov dword [esi + 0x2f6], 0
movaps xmmword [esi + 0x300], xmm0
mov byte [esi + 0x310], 0
mov ecx, dword [0x102a2380]
mov edx, dword [ecx]
lea edi, [esi + 0x1c0]
push edi
push eax
call dword [edx + 0x20]
mov byte [esi + 0xc], al
mov eax, dword [esi + 8]
mov eax, dword [eax + 0x18]
lea ecx, [esi + 0xc8]
push dword [eax + 0x6370]
push ecx
call fcn.10042cc0
add esp, 8
cmp byte [esi + 0xc], 0
je 0x1002740b
mov edi, dword [esi + 8]
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 + 0xb0]
mov eax, dword [edi + 0x14]
mov dword [esi + 0x14], eax
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 + 0xb0]
mov dword [esi + 0x1c], eax
xorps xmm0, xmm0
cvtss2sd xmm0, xmm1
xorps xmm1, xmm1
ucomisd xmm0, xmm1
jb 0x10027064
sqrtsd xmm0, xmm0
jmp 0x10027082
mov eax, dword [esi + 8]
jmp 0x1002799c
mov eax, dword [eax + 0x1c]
cmp dword [eax + edx], 0
jle 0x10026bb8
lea ecx, [edx + 8]
mov dword [esi + 0x14], edx
mov eax, dword [edx + 8]
mov eax, dword [eax + 0x24]
mov dword [esi + 0x3388], 0
call eax
test al, al
mov edi, dword [esi + 0x10]
mov ebx, dword [esi + 8]
mov edx, dword [esi + 0x14]
jne 0x10026bb8
mov edi, dword [0x102a22ac]
mov eax, dword [edi + 0xdc]
mov eax, dword [eax + edx + 8]
mov dword [esi + 0x3364], eax
mov eax, dword [edi + 0xdc]
mov eax, dword [eax + edx + 0xc]
mov dword [esi + 0x3368], eax
mov byte [esi + 0x3370], 0
mov ecx, dword [edx + 0x290c]
mov dword [esi + 0x3360], ecx
mov eax, dword [edx + 0x2900]
test eax, eax
je 0x10026e70
shl ecx, 4
lea ecx, [ecx + ecx*2]
push ecx
push eax
lea eax, [esi + 0x360]
push eax
call sub.VCRUNTIME140.dll_memcpy
mov edx, dword [esi + 0x14]
add esp, 0xc
mov byte [esi + 0x3370], 1
mov eax, dword [edi + 0x18]
mov eax, dword [edx + eax + 4]
mov dword [esi + 0x336c], eax
mov eax, dword [edi + 0x2c]
mov ecx, dword [eax + edx + 8]
mov dword [esi + 0x1c], edi
mov edi, edx
lea edx, [esi + 0x32c]
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 + 0x1c]
mov eax, dword [ecx + 0x60]
movsd xmm0, qword [eax + edi]
movsd qword [esi + 0x320], xmm0
mov eax, dword [eax + edi + 8]
mov dword [esi + 0x328], 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 + 0x354]
mov dword [edx + 8], ecx
movsd xmm0, qword [eax + edi]
movsd qword [edx], xmm0
mov eax, dword [esi + 0x1c]
mov eax, dword [eax + 0x208]
mov eax, dword [eax + edi]
test eax, eax
mov edi, dword [esi + 0x10]
je 0x10026bb8
movss xmm0, dword [eax + 0x80]
movss dword [esi + 0x338], xmm0
jmp 0x10026bb8
mov ecx, dword [ebx + 0x18]
mov dword [esi + 0x1c], ecx
mov eax, dword [eax + 0x1c]
cmp dword [eax + edx], 0
mov dword [esi + 0x3388], 0
jle 0x10026bd3
lea ecx, [edx + 8]
mov dword [esi + 0x14], edx
mov eax, dword [edx + 8]
call dword [eax + 0x24]
test al, al
mov edi, dword [esi + 0x10]
mov ebx, dword [esi + 8]
mov edx, dword [esi + 0x14]
jne 0x10026bd3
mov ebx, dword [esi + 0x1c]
cmp byte [ebx + 0x642b], 0
je 0x10026fa8
mov eax, dword [edx + 0x2900]
test eax, eax
je 0x10026fa8
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 + 0x14]
add esp, 0xc
mov eax, dword [0x102a22ac]
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 [0x102a22ac]
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 + 0x14]
mov eax, dword [ecx]
call dword [eax + 0xc]
test eax, eax
je 0x1002701d
mov ecx, dword [esi + 0x1c]
lea edx, [ecx + 0x63b0]
lea edi, [ecx + 0x63dc]
mov ebx, dword [0x102a22ac]
mov ecx, eax
push edi
push edx
call dword [ebx + 0x300]
mov eax, dword [esi + 0x1c]
movss xmm0, dword [eax + 0x63bc]
mov dword [esi + 0x1c0], 0
movss dword [esi + 0x1c4], xmm0
mov dword [esi + 0x1c8], 0
mov eax, dword [0x102a22ac]
lea edx, [esi + 0x1c0]
mov ecx, dword [esi + 0x14]
push edx
call dword [eax + 0x2ec]
mov edi, dword [esi + 0x10]
mov ebx, dword [esi + 8]
jmp 0x10026bd3
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 + 0xe0]
movsd xmm0, qword [esi + 0xe0]
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 + 0xac]
cvttss2si eax, dword [esi + 0xac]
mov dword [esi + 0x5c], eax
lea eax, [esi + 0x120]
mov dword [esi + 0x3388], 5
push str._SHOT_INFO__player:
push eax
call fcn.1002d570
add esp, 8
lea ecx, [esi + 0x1d0]
push ecx
push eax
call fcn.1002d570
add esp, 8
push str._hb:
lea eax, [esi + 0x120]
push eax
call fcn.1002d570
add esp, 8
mov dword [esi + 0xc], eax
mov eax, dword [esi + 8]
mov eax, dword [eax + 0x14]
mov edi, 0x1016d98c
cmp eax, 0x12
ja 0x10027103
mov edi, dword [eax*4 + 0x101479cc]
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 0x10027c80
cmp eax, 0xf
ja 0x1002714f
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 0x100271b3
mov dword [esi + 8], edi
mov dword [esi + 0x58], eax
or eax, 0xf
cmp eax, 0x17
mov ecx, 0x16
cmovae ecx, eax
cmp ecx, 0xfff
mov dword [esi + 0x54], ecx
jb 0x10027187
lea eax, [ecx + 0x24]
push eax
call fcn.100e9fad
add esp, 4
mov edi, eax
add edi, 0x23
and edi, 0xffffffe0
mov dword [edi - 4], eax
jmp 0x10027195
lea eax, [ecx + 1]
push eax
call fcn.100e9fad
add esp, 4
mov edi, eax
mov dword [esi + 0x20], edi
mov ebx, dword [esi + 0x58]
mov dword [esi + 0x30], ebx
mov eax, dword [esi + 0x54]
mov dword [esi + 0x34], eax
push ebx
push dword [esi + 8]
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add ebx, edi
mov byte [ebx], 0
cmp dword [esi + 0x34], 0x10
jb 0x100271c1
mov eax, dword [esi + 0x20]
jmp 0x100271c4
lea eax, [esi + 0x20]
mov dword [esi + 0x3388], 8
push eax
push dword [esi + 0xc]
call fcn.1002d570
add esp, 8
mov eax, dword [esi + 0x34]
cmp eax, 0x10
jb 0x10027212
mov ecx, dword [esi + 0x20]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x10027208
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x10027b76
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.100ea090
add esp, 8
mov dword [esi + 0x3388], 5
push 0x1016e8d9
lea eax, [esi + 0x120]
push eax
call fcn.1002d570
add esp, 8
mov dword [esi + 8], eax
lea eax, [esi + 0x20]
push dword [esi + 0x14]
push eax
call fcn.10019620
add esp, 8
mov eax, dword [esi + 0x30]
cmp dword [esi + 0x34], 0x10
lea ecx, [esi + 0x20]
jb 0x10027251
mov ecx, dword [esi + 0x20]
mov dword [esi + 0x3388], 9
push eax
push ecx
push dword [esi + 8]
call fcn.1002fa10
add esp, 0xc
push 0x1016e8d7
push eax
call fcn.1002d570
add esp, 8
mov eax, dword [esi + 0x34]
cmp eax, 0x10
jb 0x100272ae
mov ecx, dword [esi + 0x20]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x100272a4
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x10027b76
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.100ea090
add esp, 8
mov dword [esi + 0x3388], 5
push str._damage:
lea eax, [esi + 0x120]
push eax
call fcn.1002d570
add esp, 8
mov dword [esi + 8], eax
lea eax, [esi + 0x20]
push dword [esi + 0x1c]
push eax
call fcn.10019620
add esp, 8
mov eax, dword [esi + 0x30]
cmp dword [esi + 0x34], 0x10
lea ecx, [esi + 0x20]
jb 0x100272ed
mov ecx, dword [esi + 0x20]
mov dword [esi + 0x3388], 0xa
push eax
push ecx
push dword [esi + 8]
call fcn.1002fa10
add esp, 0xc
mov eax, dword [esi + 0x34]
cmp eax, 0x10
jb 0x1002733c
mov ecx, dword [esi + 0x20]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x10027332
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x10027b76
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.100ea090
add esp, 8
mov dword [esi + 0x3388], 5
push str.__resolver:
lea eax, [esi + 0x120]
push eax
call fcn.1002d570
add esp, 8
cmp dword [esi + 0xdc], 0x10
lea ecx, [esi + 0xc8]
jb 0x1002736f
mov ecx, dword [esi + 0xc8]
push ecx
push eax
call fcn.1002d570
add esp, 8
push 0x1016bcb5
push eax
call fcn.1002d570
add esp, 8
push str._animation_velocity:
lea eax, [esi + 0x120]
push eax
call fcn.1002d570
add esp, 8
mov dword [esi + 8], eax
lea eax, [esi + 0x20]
push dword [esi + 0x5c]
push eax
call fcn.10019620
add esp, 8
mov eax, dword [esi + 0x30]
cmp dword [esi + 0x34], 0x10
lea ecx, [esi + 0x20]
jb 0x100273bc
mov ecx, dword [esi + 0x20]
mov dword [esi + 0x3388], 0xb
push eax
push ecx
push dword [esi + 8]
call fcn.1002fa10
add esp, 0xc
mov eax, dword [esi + 0x34]
cmp eax, 0x10
jb 0x1002740b
mov ecx, dword [esi + 0x20]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x10027401
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x10027b76
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.100ea090
add esp, 8
mov dword [esi + 0x6c], 0xcdc3c3c3
mov dword [esi + 0x3388], 5
lea eax, [esi + 0xf8]
lea ecx, [esi + 0x110]
mov dword [esi + 0x14], eax
push eax
call fcn.1002d850
cmp byte [0x102a2520], 0
je 0x10027bb0
mov ebx, dword [0x102a2360]
mov eax, dword [0x102a22ac]
movss xmm0, dword [eax + 0x3fcc]
addss xmm0, dword [eax + 0x3fc8]
mov eax, dword [0x102a22bc]
bswap eax
mov edx, dword [0x102a22c0]
add edx, eax
mov ecx, dword [0x102a22c4]
ror edx, cl
movss xmm1, dword [edx]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
mov ecx, dword [0x102a233c]
mov ecx, dword [ecx + 0x54]
mov edx, dword [esi + 0x44]
mov dword [esi + 8], edx
mov edx, dword [edx + 0x20]
mov dword [esi + 0xc4], eax
mov dword [esi + 0xc0], ecx
mov eax, 0x4010
add eax, dword [0x102a22ac]
mov dword [esi + 0xbc], edx
movss dword [esi + 0x20], xmm0
movss dword [esi + 0x70], xmm1
mov dword [esi + 0x3388], 6
lea edi, [esi + 0x20]
lea edx, [esi + 0x70]
mov dword [esi + 0xc], ebx
mov ecx, ebx
push edi
push edx
lea edx, [esi + 0xc4]
push edx
lea edx, [esi + 0xc0]
push edx
lea edx, [esi + 0xbc]
push edx
push eax
call fcn.1002ed80
mov ebx, dword [esi + 0xc]
cmp dword [ebx + 0x10], 0x80
jb 0x10027577
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 0x10027543
mov ecx, dword [edi + 0x309c]
lea ebx, [eax + 1]
cmp ebx, 0x1000
jb 0x10027536
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x10027b76
add eax, 0x24
mov ebx, eax
mov ecx, edx
push ebx
push ecx
call fcn.100ea090
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.1001dbe0
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 + 0x40]
or byte [eax], 1
mov eax, dword [0x102a22ac]
mov byte [eax + 0x3fbc], 1
mov byte [eax + 0x396], 1
cmp byte [eax + 0x4006], 0
je 0x10027649
mov eax, dword [0x102a231c]
test byte [eax + 0x58], 8
je 0x1002762f
mov eax, dword [0x102a23ac]
cmp dword [esi + 0x10c], 0x10
jb 0x100275c3
mov ecx, dword [esi + 0xf8]
mov dword [esi + 0x14], ecx
mov ecx, dword [eax]
lea edx, [esi + 0x6c]
push dword [esi + 0x14]
push edx
push eax
call dword [ecx + 0x64]
add esp, 0xc
mov ecx, 0xf59c70f7
mov eax, 0x3ccf54ef
mov edx, 0x3ccf54ef
mov dword [esi + 0x74], edx
mov dword [esi + 0x70], ecx
mov ecx, 0xe4cff5a6
mov edx, 0xe07099fa
mov edi, 0xf59c70fd
mov dword [esi + 0x24], eax
mov dword [esi + 0x20], edi
mov dword [esi + 0x7c], edx
mov dword [esi + 0x2c], edx
mov dword [esi + 0x78], ecx
mov dword [esi + 0x28], ecx
xor eax, eax
lea ecx, [esi + 0x20]
mov eax, dword [0x102a23ac]
movaps xmm0, xmmword [esi + 0x70]
xorps xmm0, xmmword [ecx]
movaps xmmword [esi + 0x70], xmm0
mov ecx, dword [eax]
lea edx, [esi + 0x70]
push edx
lea edx, [esi + 0x6c]
push edx
push eax
call dword [ecx + 0x64]
add esp, 0xc
mov ecx, dword [0x102a2324]
push 0
mov eax, dword [esi + 8]
push dword [eax + 0x18]
push dword [eax]
call fcn.1005c4b0
mov eax, dword [0x102a22ac]
mov ecx, dword [esi + 8]
mov ecx, dword [ecx + 0x18]
movss xmm0, dword [ecx + 0x6360]
addss xmm0, dword [eax + 0x3fc4]
mov eax, dword [0x102a22bc]
bswap eax
mov edx, dword [0x102a22c0]
add edx, eax
mov ecx, dword [0x102a22c4]
ror edx, cl
movss xmm1, dword [edx + 0x20]
mov dword [esi + 0x20], 0xd05ae800
mov eax, dword [esi + 0x20]
bswap eax
mov dword [esi + 0x20], eax
add dword [esi + 0x20], 0x188a530
mov eax, dword [esi + 0x20]
rol eax, 0x13
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x20]
cvtsi2ss xmm2, eax
mov dword [esi + 0x20], 0xfc439ee5
mov eax, dword [esi + 0x20]
bswap eax
mov dword [esi + 0x20], eax
add dword [esi + 0x20], 0x1a61c5c8
mov eax, dword [esi + 0x20]
rol eax, 2
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x20]
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 + 0x10]
movsd xmm0, qword [eax]
movsd qword [ecx + 0xc], xmm0
mov eax, dword [eax + 8]
mov dword [ecx + 0x14], eax
mov eax, dword [0x102a22ac]
mov ecx, dword [eax]
mov eax, dword [eax + 0x1b8]
mov dword [esi + 8], eax
mov eax, dword [ecx]
mov dword [esi + 0xc], eax
mov ecx, dword [0x102a251c]
mov eax, dword [ecx]
call dword [eax + 0x30]
fstp dword [esi + 0xa8]
movss xmm0, dword [esi + 0xa8]
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
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 + 0xa4]
movss xmm0, dword [esi + 0xa4]
movsd xmm1, qword [ebx + 0xc]
movaps xmm2, xmmword [0x10147a80]
movaps xmm3, xmmword [0x10147a90]
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 [0x10147aa0]
maxss xmm1, xmm0
movss xmm2, dword [0x10147aa4]
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 + 0x10c]
cmp eax, 0x10
jb 0x10027856
mov ecx, dword [esi + 0xf8]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x1002784c
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x10027b76
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.100ea090
add esp, 8
mov eax, dword [esi + 0xdc]
cmp eax, 0x10
jb 0x10027894
mov ecx, dword [esi + 0xc8]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x1002788a
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x10027b76
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.100ea090
add esp, 8
mov eax, dword [esi + 0x110]
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 + 0x110]
mov eax, dword [eax + 4]
lea ecx, [eax - 0x68]
mov dword [esi + eax + 0x10c], 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 + 0x164], 1
je 0x10027926
mov eax, dword [esi + 0x148]
mov eax, dword [eax]
mov ecx, 0x48
test eax, eax
jne 0x100278ec
mov eax, dword [esi + 0x144]
mov eax, dword [eax]
mov ecx, 0x44
mov ecx, dword [esi + ecx + 0x110]
add eax, dword [ecx]
mov ecx, dword [esi + 0x134]
mov ecx, dword [ecx]
sub eax, ecx
cmp eax, 0x1000
jb 0x1002791c
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x10027b76
add eax, 0x23
mov ecx, edx
push eax
push ecx
call fcn.100ea090
add esp, 8
lea edi, [esi + 0x178]
lea ecx, [esi + 0x128]
mov eax, dword [esi + 0x134]
mov dword [eax], 0
mov eax, dword [esi + 0x144]
mov dword [eax], 0
mov eax, dword [esi + 0x154]
mov dword [eax], 0
mov eax, dword [esi + 0x138]
mov dword [eax], 0
mov eax, dword [esi + 0x148]
mov dword [eax], 0
mov eax, dword [esi + 0x158]
mov dword [eax], 0
mov dword [esi + 0x160], 0
and byte [esi + 0x164], 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 + 0x44]
mov dword [esi + 8], eax
mov edx, dword [eax]
test edx, edx
je 0x100279ba
mov eax, dword [0x102a22ac]
mov ecx, dword [eax + 0x184]
cmp byte [ecx + edx], 0
je 0x10027a32
mov eax, dword [esi + 0x18]
mov edi, dword [eax + 0x170]
mov ebx, dword [eax + 0x174]
cmp edi, ebx
je 0x100279f0
nop dword [eax]
mov ecx, edi
call fcn.1001dbe0
add edi, 0x3090
cmp edi, ebx
jne 0x100279d0
mov ecx, dword [esi + 0x18]
mov eax, dword [ecx + 0x170]
mov dword [ecx + 0x174], eax
mov ebx, dword [esi + 8]
mov edi, dword [ebx + 0x1c]
test edi, edi
je 0x10027a13
lock dec dword [edi + 4]
jne 0x10027a13
mov eax, dword [edi]
mov ecx, edi
call dword [eax]
lock dec dword [edi + 8]
jne 0x10027a13
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
push ebx
call fcn.100ea08b
add esp, 4
mov eax, dword [esi + 0x3380]
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 0x100279ba
lea ecx, [edx + 8]
mov eax, dword [edx + 8]
mov eax, dword [eax + 0x24]
mov dword [esi + 0x3388], 0
mov dword [esi + 0xc], edx
call eax
mov edi, dword [esi + 0xc]
test al, al
jne 0x100279ba
mov ecx, dword [esi + 0x3364]
mov eax, dword [0x102a22ac]
mov edx, dword [eax + 0xdc]
mov dword [edx + edi + 8], ecx
mov ecx, dword [esi + 0x3368]
mov edx, dword [eax + 0xdc]
mov dword [edx + edi + 0xc], ecx
cmp byte [esi + 0x3370], 0
je 0x10027ab7
mov eax, dword [esi + 0x3360]
shl eax, 4
lea eax, [eax + eax*2]
push eax
lea eax, [esi + 0x360]
push eax
push dword [edi + 0x2900]
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [0x102a22ac]
mov ecx, dword [esi + 0x336c]
mov eax, dword [eax + 0x18]
mov dword [edi + eax + 4], ecx
mov eax, dword [0x102a22ac]
mov eax, dword [eax + 0x2c]
lea edx, [esi + 0x32c]
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 + 0xc]
test eax, eax
je 0x10027b26
mov edx, dword [0x102a22ac]
mov ecx, eax
lea eax, [esi + 0x32c]
push eax
lea eax, [esi + 0x320]
push eax
call dword [edx + 0x300]
mov ecx, dword [esi + 0xc]
movss xmm0, dword [esi + 0x338]
mov dword [esi + 0x1c0], 0
movss dword [esi + 0x1c4], xmm0
mov dword [esi + 0x1c8], 0
mov eax, dword [0x102a22ac]
lea edx, [esi + 0x1c0]
push edx
call dword [eax + 0x2ec]
mov ecx, dword [esi + 0xc]
mov eax, dword [0x102a22ac]
lea edx, [esi + 0x354]
push edx
call dword [eax + 0x2f0]
jmp 0x100279ba
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 + 0x3388], 1
push 6
call sub.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_
add esp, 4
mov dword [esi + 0x3388], 1
push 5
call sub.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_
add esp, 4
call fcn.1002e760
mov eax, 0x85fd158a
mov ecx, 0x4e903a80
mov dword [esi + 0x74], ecx
mov dword [esi + 0x70], eax
mov eax, 0x8da096c3
mov ecx, 0x8303c696
mov dword [esi + 0x7c], ecx
mov dword [esi + 0x78], eax
mov eax, 0x42d7f37e
mov ecx, 0xfe46d055
mov dword [esi + 0x84], ecx
mov dword [esi + 0x80], eax
mov eax, 0xb5a82988
mov ecx, 0xdfd95678
mov edx, 0xf59c70fd
mov edi, 0x3ccf54ef
mov dword [esi + 0x24], edi
mov dword [esi + 0x20], edx
mov edx, 0xe4cff5a6
mov edi, 0xe07099fa
mov dword [esi + 0x2c], edi
mov edi, 0xfe46d055
mov dword [esi + 0x28], edx
mov edx, 0x42b29f1f
mov dword [esi + 0x34], edi
mov dword [esi + 0x30], edx
mov byte [0x102a2520], 1
mov dword [esi + 0x8c], ecx
mov dword [esi + 0x88], eax
mov dword [esi + 0x3c], ecx
mov dword [esi + 0x38], eax
lea eax, [esi + 0x20]
xor ecx, ecx
mov ecx, dword [0x102a23ac]
movaps xmm0, xmmword [esi + 0x70]
xorps xmm0, xmmword [eax]
movaps xmmword [esi + 0x70], xmm0
movaps xmm0, xmmword [esi + 0x80]
xorps xmm0, xmmword [eax + 0x10]
movaps xmmword [esi + 0x80], xmm0
mov eax, dword [ecx]
mov eax, dword [eax + 0x40]
mov dword [esi + 0x3388], 7
lea edx, [esi + 0x70]
push edx
call eax
mov dword [0x102a251c], eax
jmp 0x1002743e
call fcn.10018f00
nop word cs:[eax + eax]
push ebp
sub esp, 0x18
lea esi, [ebp - 0x338c]
mov ebp, dword [esi + 0x3378]
mov byte [0x102a2520], 0
add esp, 0x18
pop ebp
ret