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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
mov eax, 0x31a0
call fcn.100ea210
mov esi, esp
mov dword [esi + 0x3188], ebp
mov dword [esi + 0x318c], esp
mov dword [esi + 0x3198], 0xffffffff
lea eax, [esi + 0x3190]
mov dword [esi + 0x3194], 0x10056230
mov ecx, dword fs:[0]
mov dword [esi + 0x3190], ecx
mov dword fs:[0], eax
mov ecx, dword [0x102a2380]
mov eax, dword [ecx]
call dword [eax + 0x68]
mov edi, dword [0x102a2360]
test al, al
je 0x100527b0
mov ebx, dword [edi]
mov eax, dword [edi + 0xc]
mov edx, dword [edi + 0x10]
mov edi, eax
add edx, eax
xorps xmm3, xmm3
xorps xmm4, xmm4
mov dword [esi + 4], edx
jmp 0x10052841
cmp dword [edi + 0x10], 0
je 0x100527bf
mov ecx, edi
call fcn.1001dca0
jmp 0x100527b0
cmp dword [edi + 4], 0
je 0x100538e9
mov ecx, edi
call fcn.1001dd30
jmp 0x100538e9
movss xmm0, dword [esi + 0x148]
mov dword [esi + 0xd0], 0
movss dword [esi + 0xd4], xmm0
mov dword [esi + 0xd8], 0
mov eax, dword [0x102a22ac]
mov ecx, edi
lea edx, [esi + 0xd0]
push edx
call dword [eax + 0x2ec]
mov eax, dword [0x102a22ac]
mov ecx, edi
lea edx, [esi + 0x164]
push edx
call dword [eax + 0x2f0]
mov edx, dword [esi + 4]
xorps xmm3, xmm3
xorps xmm4, xmm4
mov edi, dword [esi + 0x4c]
mov eax, dword [esi]
mov byte [eax + 0x30c0], 1
nop word cs:[eax + eax]
inc edi
cmp edi, edx
je 0x100536e2
mov eax, dword [ebx]
mov ecx, dword [eax + 4]
mov eax, dword [eax + 8]
dec eax
and eax, edi
mov ecx, dword [ecx + eax*4]
cmp byte [ecx + 0x30c0], 0
jne 0x10052840
mov eax, dword [0x102a22bc]
bswap eax
mov edx, dword [0x102a22c0]
add edx, eax
mov dword [esi], ecx
mov ecx, dword [0x102a22c4]
ror edx, cl
mov eax, dword [esi]
xorps xmm0, xmm0
cvtsi2ss xmm0, dword [eax + 0x30d4]
movss xmm1, dword [edx]
mov edx, dword [esi + 4]
ucomiss xmm1, xmm0
ja 0x10052840
mov eax, dword [eax + 0x18]
test eax, eax
je 0x1005282d
mov ecx, dword [eax + 0x20]
test ecx, ecx
je 0x1005282d
mov eax, dword [0x102a22ac]
mov edx, dword [eax + 0x184]
cmp byte [edx + ecx], 0
mov edx, dword [esi + 4]
jne 0x1005282d
mov edx, dword [eax + 0x1c]
cmp dword [edx + ecx], 0
mov edx, dword [esi + 4]
jle 0x1005282d
mov dword [esi + 0x4c], edi
movaps xmmword [esi + 0x160], xmm3
movaps xmmword [esi + 0x150], xmm3
movaps xmmword [esi + 0x140], xmm3
movaps xmmword [esi + 0x130], xmm3
lea ecx, [esi + 0x170]
lea edi, [esi + 0x3170]
nop word cs:[eax + eax]
movups xmmword [ecx + 0x20], xmm3
movups xmmword [ecx + 0x10], xmm3
movups xmmword [ecx], xmm3
movups xmmword [ecx + 0x30], xmm3
movups xmmword [ecx + 0x40], xmm3
movups xmmword [ecx + 0x50], xmm3
movups xmmword [ecx + 0x60], xmm3
movups xmmword [ecx + 0x70], xmm3
movups xmmword [ecx + 0x80], xmm3
movups xmmword [ecx + 0x90], xmm3
movups xmmword [ecx + 0xa0], xmm3
movups xmmword [ecx + 0xb0], xmm3
movups xmmword [ecx + 0xc0], xmm3
movups xmmword [ecx + 0xd0], xmm3
movups xmmword [ecx + 0xe0], xmm3
movups xmmword [ecx + 0x110], xmm3
movups xmmword [ecx + 0x100], xmm3
movups xmmword [ecx + 0xf0], xmm3
movups xmmword [ecx + 0x140], xmm3
movups xmmword [ecx + 0x130], xmm3
movups xmmword [ecx + 0x120], xmm3
movups xmmword [ecx + 0x150], xmm3
movups xmmword [ecx + 0x160], xmm3
movups xmmword [ecx + 0x170], xmm3
movups xmmword [ecx + 0x180], xmm3
movups xmmword [ecx + 0x190], xmm3
movups xmmword [ecx + 0x1a0], xmm3
movups xmmword [ecx + 0x1b0], xmm3
movups xmmword [ecx + 0x1c0], xmm3
movups xmmword [ecx + 0x1d0], xmm3
movups xmmword [ecx + 0x1e0], xmm3
movups xmmword [ecx + 0x1f0], xmm3
movups xmmword [ecx + 0x200], xmm3
movups xmmword [ecx + 0x210], xmm3
movups xmmword [ecx + 0x220], xmm3
movups xmmword [ecx + 0x230], xmm3
movups xmmword [ecx + 0x260], xmm3
movups xmmword [ecx + 0x250], xmm3
movups xmmword [ecx + 0x240], xmm3
movups xmmword [ecx + 0x290], xmm3
movups xmmword [ecx + 0x280], xmm3
movups xmmword [ecx + 0x270], xmm3
movups xmmword [ecx + 0x2c0], xmm3
movups xmmword [ecx + 0x2b0], xmm3
movups xmmword [ecx + 0x2a0], xmm3
movups xmmword [ecx + 0x2f0], xmm3
movups xmmword [ecx + 0x2e0], xmm3
movups xmmword [ecx + 0x2d0], xmm3
add ecx, 0x300
cmp ecx, edi
jne 0x10052900
movups xmmword [edi], xmm3
mov byte [edi + 0x10], 0
mov ecx, dword [esi]
mov ecx, dword [ecx + 0x18]
mov edi, dword [ecx + 0x20]
test edi, edi
je 0x10052a68
mov ecx, dword [eax + 0x184]
cmp byte [ecx + edi], 0
je 0x10052c03
mov ecx, dword [esi]
cmp dword [ecx + 0x30e8], 0
jne 0x100535a9
mov dword [esi + 8], ebx
cmp byte [ecx + 0x24], 0
je 0x10053b54
mov eax, dword [ecx + 0x18]
mov edi, dword [eax + 0x20]
test edi, edi
je 0x10052aa5
mov eax, dword [0x102a22ac]
mov ecx, dword [eax + 0x184]
cmp byte [ecx + edi], 0
mov ecx, dword [esi]
je 0x10053043
movaps xmmword [esi + 0x110], xmm3
movaps xmmword [esi + 0x100], xmm3
movaps xmmword [esi + 0xf0], xmm3
movaps xmmword [esi + 0xe0], xmm3
movaps xmmword [esi + 0xd0], xmm3
mov dword [esi + 0x120], 0
mov eax, dword [ecx + 0x18]
mov eax, dword [eax + 0x20]
mov ebx, ecx
mov ecx, dword [ecx + 8]
mov dword [esi + 0x78], ecx
movsd xmm0, qword [ebx]
movsd qword [esi + 0x70], xmm0
mov dword [esi + 0x7c], 0
movss xmm0, dword [ebx + 0x30e0]
subss xmm0, dword [ebx + 8]
mov ecx, dword [0x102a23c0]
movsd xmm1, qword [ebx + 0x30d8]
movsd xmm2, qword [ebx]
subps xmm1, xmm2
movlps qword [esi + 0x80], xmm1
movss dword [esi + 0x88], xmm0
lea edx, [esi + 0x8c]
movups xmmword [edx + 0x10], xmm3
movups xmmword [edx], xmm3
mov dword [edx + 0x24], 0
mov dword [edx + 0x20], 0
movaps xmm2, xmm1
mulss xmm2, xmm1
addss xmm2, xmm4
shufps xmm1, xmm1, 0x55
mulss xmm1, xmm1
addss xmm1, xmm2
mulss xmm0, xmm0
addss xmm0, xmm1
ucomiss xmm0, xmm4
mov byte [esi + 0xb4], 1
setp dl
setne dh
or dh, dl
mov byte [esi + 0xb5], dh
mov edx, dword [ecx]
mov edx, dword [edx + 0xc]
mov dword [esi + 0x3198], 0xffffffff
lea edi, [esi + 0xd0]
push edi
push eax
push 0x4600400b
lea eax, [esi + 0x70]
push eax
call edx
mov eax, dword [esi + 0x11c]
mov ecx, dword [ebx + 0x18]
cmp eax, dword [ecx + 0x20]
je 0x10052d58
movss xmm1, dword [ebx]
movss xmm0, dword [ebx + 4]
subss xmm1, dword [ebx + 0x3c]
subss xmm0, dword [ebx + 0x40]
movss xmm2, dword [ebx + 8]
subss xmm2, dword [ebx + 0x44]
mulss xmm1, xmm1
addss xmm1, dword [0x10147b30]
mulss xmm0, xmm0
addss xmm0, xmm1
mulss xmm2, xmm2
addss xmm2, xmm0
xorps xmm0, xmm0
cvtss2sd xmm0, xmm2
ucomisd xmm0, qword [0x10149100]
xorps xmm3, xmm3
jb 0x10052dac
mov ecx, ebx
sqrtsd xmm4, xmm0
jmp 0x10052dcf
mov eax, dword [eax + 0x1c]
cmp dword [eax + edi], 0
jle 0x10052a68
lea ecx, [edi + 8]
mov eax, dword [edi + 8]
mov eax, dword [eax + 0x24]
mov dword [esi + 0x3198], 0xffffffff
call eax
xorps xmm4, xmm4
xorps xmm3, xmm3
mov edx, dword [esi + 4]
test al, al
jne 0x10052a68
mov dword [esi + 8], ebx
mov ebx, dword [0x102a22ac]
mov eax, dword [ebx + 0xdc]
mov eax, dword [eax + edi + 8]
mov dword [esi + 0x3174], eax
mov eax, dword [ebx + 0xdc]
mov eax, dword [eax + edi + 0xc]
mov dword [esi + 0x3178], eax
mov byte [esi + 0x3180], 0
mov ecx, dword [edi + 0x290c]
mov dword [esi + 0x3170], ecx
mov eax, dword [edi + 0x2900]
test eax, eax
je 0x10052ca3
shl ecx, 4
lea ecx, [ecx + ecx*2]
push ecx
push eax
lea eax, [esi + 0x170]
push eax
call sub.VCRUNTIME140.dll_memcpy
xorps xmm4, xmm4
xorps xmm3, xmm3
mov edx, dword [esi + 4]
add esp, 0xc
mov byte [esi + 0x3180], 1
mov eax, dword [ebx + 0x18]
mov eax, dword [edi + eax + 4]
mov dword [esi + 0x317c], eax
mov eax, dword [ebx + 0x2c]
mov ecx, dword [eax + edi + 8]
mov dword [esi + 0x10], ebx
lea ebx, [esi + 0x13c]
mov dword [ebx + 0x24], ecx
movsd xmm0, qword [eax + edi]
movsd qword [ebx + 0x1c], xmm0
mov eax, dword [edi + 0x3b0]
mov dword [ebx + 0x18], eax
movsd xmm0, qword [edi + 0x3a8]
movsd qword [ebx + 0x10], xmm0
mov ecx, dword [esi + 0x10]
mov eax, dword [ecx + 0x60]
movsd xmm0, qword [eax + edi]
movsd qword [esi + 0x130], xmm0
mov eax, dword [eax + edi + 8]
mov dword [esi + 0x138], eax
mov eax, dword [ecx + 0x64]
movsd xmm0, qword [eax + edi]
movsd qword [ebx], xmm0
mov eax, dword [eax + edi + 8]
mov dword [ebx + 8], eax
mov eax, dword [ecx + 0x38]
mov ecx, dword [eax + edi + 8]
lea ebx, [esi + 0x164]
mov dword [ebx + 8], ecx
movsd xmm0, qword [eax + edi]
movsd qword [ebx], xmm0
mov eax, dword [esi + 0x10]
mov eax, dword [eax + 0x208]
mov eax, dword [eax + edi]
test eax, eax
mov ebx, dword [esi + 8]
je 0x10052a68
movss xmm0, dword [eax + 0x80]
movss dword [esi + 0x148], xmm0
jmp 0x10052a68
xorps xmm0, xmm0
movaps xmmword [esi + 0x50], xmm0
mov dword [esi + 0x60], 0
mov dword [esi + 0x64], 0xf
cmp byte [ebx + 0x24], 0
je 0x10053b77
mov eax, dword [ebx + 0x1c]
mov eax, dword [eax + 0x6370]
cmp eax, 0xd
ja case.default.0x10052d89
jmp dword [eax*4 + 0x1014971c]
mov dword [esi + 0x3198], 0
lea ecx, [esi + 0x50]
push str.low_lby
call fcn.10053bd0
jmp 0x1005329d
sub esp, 8
movsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrt
mov ecx, dword [esi]
xorps xmm3, xmm3
add esp, 8
fstp qword [esi + 0xc8]
movsd xmm4, qword [esi + 0xc8]
mov dword [esi + 0x70], 0x4096c9e6
mov eax, dword [esi + 0x70]
bswap eax
mov dword [esi + 0x70], eax
add dword [esi + 0x70], 0x99366af8
mov eax, dword [esi + 0x70]
rol eax, 0xa
mov dword [esi + 0x70], eax
mov edi, dword [esi + 0x70]
mov dword [esi + 0x70], 0x7e8544da
mov eax, dword [esi + 0x70]
bswap eax
mov dword [esi + 0x70], eax
add dword [esi + 0x70], 0xa5bb7bba
mov eax, dword [esi + 0x70]
rol eax, 5
mov dword [esi + 0x70], eax
mov ebx, dword [esi + 0x70]
movss xmm1, dword [ecx]
movss xmm0, dword [ecx + 4]
subss xmm1, dword [ecx + 0x30d8]
subss xmm0, dword [ecx + 0x30dc]
movss xmm2, dword [ecx + 8]
subss xmm2, dword [ecx + 0x30e0]
mulss xmm1, xmm1
addss xmm1, xmm3
mulss xmm0, xmm0
addss xmm0, xmm1
mulss xmm2, xmm2
addss xmm2, xmm0
xorps xmm0, xmm0
cvtss2sd xmm0, xmm2
ucomisd xmm0, qword [0x10149100]
jb 0x10052e68
sqrtsd xmm0, xmm0
jmp 0x10052e90
sub esp, 8
movsd qword [esp], xmm0
movsd qword [esi + 0x10], xmm4
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrt
movsd xmm4, qword [esi + 0x10]
add esp, 8
fstp qword [esi + 0xc0]
movsd xmm0, qword [esi + 0xc0]
xorps xmm1, xmm1
cvtsi2ss xmm1, edi
xorps xmm2, xmm2
cvtsi2ss xmm2, ebx
mov ebx, esp
xorps xmm3, xmm3
cvtsd2ss xmm3, xmm4
divss xmm1, xmm2
subss xmm3, xmm1
cvtsd2ss xmm0, xmm0
push eax
sub esp, 0x14
mov edi, esp
ucomiss xmm3, xmm0
mov dword [esi + 0xc], ebx
mov dword [esi + 0x10], edi
mov eax, 0x36787493
jbe 0x10052f7b
mov ecx, 0xe47288a6
mov dword [esi + 0x24], ecx
mov dword [esi + 0x20], eax
mov eax, 0x977609d3
mov ecx, 0x978c7400
mov dword [esi + 0x2c], ecx
mov dword [esi + 0x28], eax
mov eax, 0xa14dff01
mov ecx, 0xe611815c
mov dword [esi + 0x18], eax
mov edx, 0xb19b76c2
mov edi, 0x90188f15
mov ebx, 0x161d01f7
mov eax, 0x8b52e7d2
mov dword [esi + 0x74], eax
mov dword [esi + 0x70], ebx
mov eax, 0xe21a6ab0
mov ebx, 0xf9e31d73
mov dword [esi + 0x7c], ebx
mov dword [esi + 0x78], eax
mov dword [esi + 0x34], ecx
mov dword [esi + 0x84], ecx
mov eax, dword [esi + 0x18]
mov dword [esi + 0x30], eax
mov dword [esi + 0x80], eax
mov dword [esi + 0x3c], edi
mov dword [esi + 0x38], edx
mov dword [esi + 0x8c], edi
mov dword [esi + 0x88], edx
lea eax, [esi + 0x70]
xor ecx, ecx
movaps xmm0, xmmword [esi + 0x20]
xorps xmm0, xmmword [eax]
movaps xmmword [esi + 0x20], xmm0
movaps xmm0, xmmword [esi + 0x30]
xorps xmm0, xmmword [eax + 0x10]
movaps xmmword [esi + 0x30], xmm0
xorps xmm0, xmm0
mov eax, dword [esi + 0x10]
movups xmmword [eax], xmm0
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0
jmp 0x10052fda
mov ecx, 0xf87288a6
mov dword [esi + 0x24], ecx
mov dword [esi + 0x20], eax
mov eax, 0x837f18c0
mov ecx, 0xf9e31d17
mov dword [esi + 0x2c], ecx
mov dword [esi + 0x28], eax
mov eax, 0x161d01f7
mov ecx, 0x8b52e7d2
mov dword [esi + 0x74], ecx
mov dword [esi + 0x70], eax
mov eax, 0xe21a6ab0
mov ecx, 0xf9e31d73
mov dword [esi + 0x7c], ecx
mov dword [esi + 0x78], eax
lea eax, [esi + 0x70]
xor ecx, ecx
movaps xmm0, xmmword [esi + 0x20]
xorps xmm0, xmmword [eax]
movaps xmmword [esi + 0x20], xmm0
xorps xmm0, xmm0
movups xmmword [edi], xmm0
mov dword [edi + 0x14], 0
mov dword [edi + 0x10], 0
lea eax, [esi + 0x20]
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
test eax, eax
js 0x10053b63
mov edi, eax
cmp eax, 0xf
ja 0x1005300d
mov ebx, dword [esi + 0x10]
mov dword [ebx + 0x10], edi
mov dword [ebx + 0x14], 0xf
push edi
lea eax, [esi + 0x20]
push eax
push ebx
jmp 0x10053199
mov ebx, edi
or ebx, 0xf
cmp ebx, 0x17
mov eax, 0x16
cmovb ebx, eax
cmp ebx, 0xfff
jb 0x10053178
lea eax, [ebx + 0x24]
push eax
call fcn.100e9fad
add esp, 4
lea ecx, [eax + 0x23]
and ecx, 0xffffffe0
mov dword [ecx - 4], eax
jmp 0x10053186
mov ebx, dword [ecx + 0x1c]
mov eax, dword [eax + 0x1c]
cmp dword [eax + edi], 0
mov dword [esi + 0x3198], 0xffffffff
jle 0x10052aa5
lea ecx, [edi + 8]
mov eax, dword [edi + 8]
call dword [eax + 0x24]
mov ecx, dword [esi]
xorps xmm4, xmm4
xorps xmm3, xmm3
test al, al
jne 0x10052aa5
cmp byte [ebx + 0x642b], 0
je 0x100530b7
mov eax, dword [edi + 0x2900]
test eax, eax
je 0x100530b7
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 [0x102a22ac]
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 [0x102a22ac]
mov ecx, dword [eax + 0x2c]
mov edx, dword [ebx + 0x6380]
mov dword [ecx + edi + 8], edx
movsd xmm0, qword [ebx + 0x6378]
movsd qword [ecx + edi], xmm0
mov ecx, dword [ebx + 0x638c]
mov dword [edi + 0x3b0], ecx
lea edx, [ebx + 0x6378]
movsd xmm0, qword [ebx + 0x6384]
movsd qword [edi + 0x3a8], xmm0
mov ecx, edi
push edx
call dword [eax + 0x2f0]
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0xc]
test eax, eax
je 0x10053133
lea ecx, [ebx + 0x63b0]
mov dword [esi + 0x10], ecx
lea edx, [ebx + 0x63dc]
mov ecx, dword [0x102a22ac]
mov dword [esi + 0xc], ecx
mov ecx, eax
push edx
push dword [esi + 0x10]
mov eax, dword [esi + 0xc]
call dword [eax + 0x300]
movss xmm0, dword [ebx + 0x63bc]
mov dword [esi + 0xd0], 0
movss dword [esi + 0xd4], xmm0
mov dword [esi + 0xd8], 0
mov eax, dword [0x102a22ac]
mov ecx, edi
lea edx, [esi + 0xd0]
push edx
call dword [eax + 0x2ec]
xorps xmm3, xmm3
xorps xmm4, xmm4
mov ecx, dword [esi]
jmp 0x10052aa5
lea eax, [ebx + 1]
push eax
call fcn.100e9fad
add esp, 4
mov ecx, eax
mov eax, dword [esi + 0x10]
mov dword [eax], ecx
mov dword [eax + 0x10], edi
mov dword [eax + 0x14], ebx
push edi
lea eax, [esi + 0x20]
push eax
push ecx
mov ebx, ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add edi, ebx
mov ebx, dword [esi + 8]
mov byte [edi], 0
call fcn.100524c0
add esp, 0x18
mov esp, dword [esi + 0xc]
jmp 0x1005359e
mov dword [esi + 0x3198], 0
lea ecx, [esi + 0x50]
push str.last_move
call fcn.10053bd0
mov eax, dword [esi]
mov eax, dword [eax + 0x18]
mov ecx, 0x3c6c
jmp 0x10053382
mov dword [esi + 0x3198], 0
lea ecx, [esi + 0x50]
push str.fake_walk
call fcn.10053bd0
jmp 0x10053386
mov dword [esi + 0x3198], 0
lea ecx, [esi + 0x50]
push str.anti_freestanding
call fcn.10053bd0
mov eax, dword [esi]
mov eax, dword [eax + 0x18]
mov ecx, 0x3c78
jmp 0x10053382
mov dword [esi + 0x3198], 0
lea ecx, [esi + 0x50]
push str.backwards
call fcn.10053bd0
mov eax, dword [esi]
mov eax, dword [eax + 0x18]
mov ecx, 0x3c74
jmp 0x10053382
mov dword [esi + 0x3198], 0
lea ecx, [esi + 0x50]
push str.lby_delta
call fcn.10053bd0
jmp 0x100532c3
mov dword [esi + 0x3198], 0
lea ecx, [esi + 0x50]
push str.brute
call fcn.10053bd0
mov eax, dword [esi]
mov eax, dword [eax + 0x18]
mov ecx, 0x3c68
jmp 0x10053382
mov dword [esi + 0x3198], 0
lea ecx, [esi + 0x50]
push str.body_flick
call fcn.10053bd0
mov eax, dword [esi]
mov eax, dword [eax + 0x18]
mov ecx, 0x3c88
jmp 0x10053382
mov dword [esi + 0x3198], 0
lea ecx, [esi + 0x50]
push 0x1016c871
call fcn.10053bd0
mov eax, dword [esi]
mov eax, dword [eax + 0x18]
mov ecx, 0x3c7c
jmp 0x10053382
mov dword [esi + 0x3198], 0
lea ecx, [esi + 0x50]
push str.brute_n_
call fcn.10053bd0
mov eax, dword [esi]
mov eax, dword [eax + 0x18]
mov ecx, 0x3c64
jmp 0x10053382
mov dword [esi + 0x3198], 0
lea ecx, [esi + 0x50]
push 0x1016cb95
call fcn.10053bd0
mov eax, dword [esi]
mov eax, dword [eax + 0x18]
mov ecx, 0x3c84
jmp 0x10053382
mov dword [esi + 0x3198], 0
lea ecx, [esi + 0x50]
push str.in_air
call fcn.10053bd0
mov eax, dword [esi]
mov eax, dword [eax + 0x18]
mov ecx, 0x3c40
jmp 0x10053382
mov dword [esi + 0x3198], 0
lea ecx, [esi + 0x50]
push str.forwards
call fcn.10053bd0
mov eax, dword [esi]
mov eax, dword [eax + 0x18]
mov ecx, 0x3c70
jmp 0x10053382
mov dword [esi + 0x3198], 0
lea ecx, [esi + 0x50]
push str.anim_lby
call fcn.10053bd0
mov eax, dword [esi]
mov eax, dword [eax + 0x18]
mov ecx, 0x3c80
add eax, ecx
inc dword [eax]
mov eax, 0x36787493
mov ecx, 0xf97288a6
mov dword [esi + 0x24], ecx
mov dword [esi + 0x20], eax
mov eax, 0x8e7519d5
mov ecx, 0xd1917805
mov dword [esi + 0x2c], ecx
mov dword [esi + 0x28], eax
mov eax, 0xa1648c24
mov ecx, 0xe611815c
mov dword [esi + 0x34], ecx
mov dword [esi + 0x30], eax
mov eax, 0xb19b76c2
mov ecx, 0x90188f15
mov edx, 0x161d01f7
mov edi, 0x8b52e7d2
mov dword [esi + 0x74], edi
mov dword [esi + 0x70], edx
mov edx, 0xe21a6ab0
mov edi, 0xf9e31d73
mov dword [esi + 0x7c], edi
mov dword [esi + 0x78], edx
mov edx, 0xa14dff01
mov edi, 0xe611815c
mov dword [esi + 0x84], edi
mov dword [esi + 0x80], edx
mov dword [esi + 0x3c], ecx
mov dword [esi + 0x38], eax
mov dword [esi + 0x8c], ecx
mov dword [esi + 0x88], eax
lea edx, [esi + 0x70]
mov eax, edx
xor ecx, ecx
movaps xmm0, xmmword [esi + 0x20]
xorps xmm0, xmmword [eax]
movaps xmmword [esi + 0x20], xmm0
movaps xmm0, xmmword [esi + 0x30]
xorps xmm0, xmmword [eax + 0x10]
movaps xmmword [esi + 0x30], xmm0
lea eax, [esi + 0x50]
push eax
lea eax, [esi + 0x20]
push eax
push edx
call fcn.10053c50
add esp, 0xc
mov ecx, esp
push eax
sub esp, 0x14
mov edx, esp
xorps xmm0, xmm0
movups xmmword [edx], xmm0
mov dword [edx + 0x14], 0
mov dword [edx + 0x10], 0
cmp dword [esi + 0x84], 0x10
lea eax, [esi + 0x70]
jb 0x10053462
mov eax, dword [esi + 0x70]
mov edi, dword [esi + 0x80]
test edi, edi
js 0x10053b68
cmp edi, 0xf
mov dword [esi + 0x10], ecx
ja 0x1005348a
mov dword [edx + 0x10], edi
mov dword [edx + 0x14], 0xf
movups xmm0, xmmword [eax]
movups xmmword [edx], xmm0
jmp 0x10053504
mov dword [esi + 0x18], eax
mov dword [esi + 0xc], edx
mov dword [esi + 0x1c], edi
or edi, 0xf
cmp edi, 0x17
mov eax, 0x16
cmovb edi, eax
cmp edi, 0xfff
mov dword [esi + 0x48], edi
jb 0x100534cf
lea eax, [edi + 0x24]
mov dword [esi + 0x3198], 1
push eax
call fcn.100e9fad
add esp, 4
mov ecx, eax
add eax, 0x23
and eax, 0xffffffe0
mov dword [eax - 4], ecx
jmp 0x100534e5
lea eax, [edi + 1]
mov dword [esi + 0x3198], 1
push eax
call fcn.100e9fad
add esp, 4
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 0x1c]
mov dword [ecx], eax
mov dword [ecx + 0x10], edx
mov edi, dword [esi + 0x48]
mov dword [ecx + 0x14], edi
inc edx
push edx
push dword [esi + 0x18]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov dword [esi + 0x3198], 1
call fcn.100524c0
add esp, 0x18
mov esp, dword [esi + 0x10]
mov eax, dword [esi + 0x84]
cmp eax, 0x10
mov ebx, dword [esi + 8]
mov edx, dword [esi + 4]
xorps xmm4, xmm4
jb 0x10053563
mov ecx, dword [esi + 0x70]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x10053553
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x10053b4e
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.100ea090
add esp, 8
mov edx, dword [esi + 4]
xorps xmm4, xmm4
mov eax, dword [esi + 0x64]
cmp eax, 0x10
xorps xmm3, xmm3
jb 0x100535a7
mov ecx, dword [esi + 0x50]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x10053594
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x10053b4e
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.100ea090
add esp, 8
mov edx, dword [esi + 4]
xorps xmm3, xmm3
xorps xmm4, xmm4
mov ecx, dword [esi]
mov eax, dword [ecx + 0x18]
mov edi, dword [eax + 0x20]
test edi, edi
je 0x1005282a
mov eax, dword [0x102a22ac]
mov ecx, dword [eax + 0x184]
cmp byte [ecx + edi], 0
jne 0x1005282a
mov eax, dword [eax + 0x1c]
cmp dword [eax + edi], 0
jle 0x1005282a
lea ecx, [edi + 8]
mov eax, dword [edi + 8]
mov eax, dword [eax + 0x24]
mov dword [esi + 0x3198], 0xffffffff
call eax
xorps xmm4, xmm4
xorps xmm3, xmm3
mov edx, dword [esi + 4]
test al, al
jne 0x1005282a
mov ecx, dword [esi + 0x3174]
mov eax, dword [0x102a22ac]
mov edx, dword [eax + 0xdc]
mov dword [edx + edi + 8], ecx
mov ecx, dword [esi + 0x3178]
mov edx, dword [eax + 0xdc]
mov dword [edx + edi + 0xc], ecx
cmp byte [esi + 0x3180], 0
je 0x10053654
mov eax, dword [esi + 0x3170]
shl eax, 4
lea eax, [eax + eax*2]
push eax
lea eax, [esi + 0x170]
push eax
push dword [edi + 0x2900]
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [0x102a22ac]
mov ecx, dword [esi + 0x317c]
mov eax, dword [eax + 0x18]
mov dword [edi + eax + 4], ecx
mov eax, dword [0x102a22ac]
mov eax, dword [eax + 0x2c]
lea edx, [esi + 0x13c]
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]
test eax, eax
je 0x100527d5
mov edx, dword [0x102a22ac]
mov ecx, eax
lea eax, [esi + 0x13c]
push eax
lea eax, [esi + 0x130]
push eax
call dword [edx + 0x300]
jmp 0x100527d5
mov dword [esi + 0x3198], 0
lea ecx, [esi + 0x50]
push 0x1016c84e
call fcn.10053bd0
jmp 0x10053386
mov dword [esi + 0xc], esp
mov eax, dword [0x102a2360]
mov dword [esi + 0x18], eax
push eax
sub esp, 0x18
mov edx, esp
mov dword [esi + 0x48], esp
mov eax, dword [0x102a2360]
mov ecx, dword [eax + 0x10]
add ecx, dword [eax + 0xc]
mov eax, dword [eax]
mov dword [edx + 0x14], 0
mov dword [edx + 0x10], eax
mov dword [esi + 0x1c], edx
mov dword [edx + 0x18], ecx
sub esp, 0x20
mov edi, esp
mov ecx, dword [0x102a2360]
mov ebx, dword [ecx + 0xc]
mov eax, dword [ecx + 0x10]
mov dword [edi + 0x14], 0
lea edx, [eax + ebx]
mov dword [esi + 8], edx
mov dword [edi + 0x18], edx
mov ecx, dword [ecx]
mov dword [edi + 0x10], ecx
mov dword [edi + 8], 0
mov dword [edi + 0xc], ebx
mov dword [edi + 4], ecx
lea edx, [esi + 0x130]
mov dword [esi + 0xbc], edi
mov dword [edi], edx
test ecx, ecx
je 0x10053765
mov ecx, dword [ecx]
mov dword [esi], ecx
test eax, eax
jne 0x10053773
jmp 0x1005387d
mov dword [esi], 0
test eax, eax
je 0x1005387d
movaps xmm0, xmmword [0x10147ac0]
movss xmm1, dword [0x101492a8]
jmp 0x10053798
inc ebx
dec eax
je 0x10053888
mov edx, dword [esi]
mov ecx, dword [edx + 4]
mov edx, dword [edx + 8]
dec edx
and edx, ebx
mov edx, dword [ecx + edx*4]
cmp byte [edx + 0x30c0], 0
jne 0x100537b8
cmp dword [edx + 0x30d4], 0
jne 0x10053790
mov ecx, dword [0x102a22bc]
bswap ecx
mov edi, dword [0x102a22c0]
add edi, ecx
mov ecx, dword [0x102a22c4]
ror edi, cl
movss xmm2, dword [edi]
subss xmm2, dword [edx + 0x30b4]
andps xmm2, xmm0
ucomiss xmm2, xmm1
jae 0x1005387d
cmp byte [edx + 0x30c0], 0
jne 0x10053790
cmp dword [edx + 0x30d4], 0
jne 0x10053790
cmp dword [edx + 0x30c8], 0xffffffff
je 0x10053790
cmp dword [edx + 0x30d0], 0xffffffff
je 0x10053790
mov ecx, dword [0x102a22c8]
bswap ecx
mov edi, dword [0x102a22cc]
add edi, ecx
mov ecx, dword [0x102a22d0]
ror edi, cl
mov ecx, dword [edi + 0x4cbc]
sub ecx, dword [edx + 0x30d0]
mov edi, ecx
neg edi
cmovs edi, ecx
cmp edi, 0x15
jb 0x10053790
mov ecx, dword [0x102a22bc]
bswap ecx
mov edi, dword [0x102a22c0]
add edi, ecx
mov ecx, dword [0x102a22c4]
ror edi, cl
movss xmm2, dword [edi]
subss xmm2, dword [edx + 0x30b8]
andps xmm2, xmm0
ucomiss xmm2, xmm1
ja 0x1005387d
movss xmm3, dword [edx + 0x30bc]
ucomiss xmm3, xmm2
jae 0x10053790
mov eax, dword [esi + 8]
cmp ebx, eax
jne 0x1005388d
mov ebx, eax
jmp 0x10053898
mov ebx, dword [esi + 8]
jmp 0x10053898
lea edi, [ebx + 1]
cmp edi, eax
jne 0x100539a2
mov esp, dword [esi + 0x48]
mov dword [esi + 0x134], 0
mov eax, dword [esi + 0xbc]
mov eax, dword [eax + 4]
mov dword [esi + 0x130], eax
mov dword [esi + 0x138], ebx
mov ecx, dword [esi + 0x1c]
mov dword [ecx + 8], 0
mov eax, dword [esi + 0x130]
mov dword [ecx + 4], eax
mov eax, dword [esi + 0x138]
mov dword [ecx + 0xc], eax
lea eax, [esi + 0xd0]
mov dword [ecx], eax
mov ecx, dword [esi + 0x18]
call fcn.10050070
mov esp, dword [esi + 0xc]
mov eax, dword [esi + 0x3190]
mov dword fs:[0], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push edx
push ecx
call fcn.100ea090
add esp, 8
mov ecx, dword [esi + 0x10]
lea eax, [edi + 0x309c]
mov dword [ebx + 0x30ac], 0
mov dword [ebx + 0x30b0], 0xf
mov byte [ebx + 0x309c], 0
movsd xmm0, qword [eax + 0x10]
movsd qword [ecx + 0x10], xmm0
movups xmm0, xmmword [eax]
movups xmmword [ecx], xmm0
mov dword [edi + 0x30ac], 0
mov dword [edi + 0x30b0], 0xf
mov byte [edi + 0x309c], 0
movups xmm0, xmmword [edi + 0x30e4]
movups xmmword [ebx + 0x30e4], xmm0
movups xmm0, xmmword [edi + 0x30d4]
movups xmmword [ebx + 0x30d4], xmm0
movups xmm0, xmmword [edi + 0x30b4]
movups xmm1, xmmword [edi + 0x30c4]
movups xmmword [ebx + 0x30c4], xmm1
movups xmmword [ebx + 0x30b4], xmm0
mov ebx, dword [esi + 4]
inc ebx
mov edi, dword [esi + 0x4c]
inc edi
cmp dword [esi + 8], edi
je 0x10053898
mov ecx, dword [esi]
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 8]
dec ecx
and ecx, edi
mov eax, dword [eax + ecx*4]
cmp byte [eax + 0x30c0], 0
jne 0x10053a60
cmp dword [eax + 0x30d4], 0
je 0x10053a60
mov ecx, dword [esi]
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 8]
dec ecx
mov edx, ecx
mov dword [esi + 0x4c], edi
and edx, edi
mov edi, dword [eax + edx*4]
mov dword [esi + 4], ebx
and ecx, ebx
mov ebx, dword [eax + ecx*4]
mov eax, dword [edi + 8]
mov dword [ebx + 8], eax
movsd xmm0, qword [edi]
movsd qword [ebx], xmm0
lea ecx, [ebx + 0xc]
lea eax, [edi + 0xc]
push eax
call fcn.10032f00
cmp ebx, edi
je 0x10053959
lea ecx, [ebx + 0x309c]
mov eax, dword [ebx + 0x30b0]
cmp eax, 0x10
jb 0x1005390d
mov dword [esi + 0x10], ecx
mov ecx, dword [ecx]
lea edx, [eax + 1]
cmp edx, 0x1000
jb 0x10053900
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
mov dword [esi + 0xb8], edx
sub ecx, edx
cmp ecx, 0x20
jae 0x10053b4e
add eax, 0x24
mov edx, eax
mov ecx, dword [esi + 0xb8]
jmp 0x10053900
mov ecx, dword [0x102a22bc]
bswap ecx
mov edx, dword [0x102a22c0]
add edx, ecx
mov ecx, dword [0x102a22c4]
ror edx, cl
movss xmm0, dword [edx]
subss xmm0, dword [eax + 0x30b4]
andps xmm0, xmmword [0x10147ac0]
ucomiss xmm0, dword [0x101492a8]
jae 0x10053998
cmp byte [eax + 0x30c0], 0
jne 0x100539ca
cmp dword [eax + 0x30d4], 0
jne 0x100539ca
cmp dword [eax + 0x30c8], 0xffffffff
je 0x100539ca
cmp dword [eax + 0x30d0], 0xffffffff
je 0x100539ca
mov ecx, dword [0x102a22c8]
bswap ecx
mov edx, dword [0x102a22cc]
add edx, ecx
mov ecx, dword [0x102a22d0]
ror edx, cl
mov ecx, dword [edx + 0x4cbc]
sub ecx, dword [eax + 0x30d0]
mov edx, ecx
neg edx
cmovs edx, ecx
cmp edx, 0x15
jb 0x100539ca
mov ecx, dword [0x102a22bc]
bswap ecx
mov edx, dword [0x102a22c0]
add edx, ecx
mov ecx, dword [0x102a22c4]
ror edx, cl
movss xmm0, dword [edx]
subss xmm0, dword [eax + 0x30b8]
andps xmm0, xmmword [0x10147ac0]
ucomiss xmm0, dword [0x101492a8]
ja 0x10053998
movss xmm1, dword [eax + 0x30bc]
ucomiss xmm1, xmm0
jb 0x10053998
jmp 0x100539ca
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
mov dword [esi + 0x3198], 0xffffffff
call fcn.1002e760
call fcn.10018f00
mov dword [esi + 0x3198], 1
call fcn.10018f00
mov dword [esi + 0x3198], 0
call fcn.1002e760
nop word cs:[eax + eax]
push ebp
sub esp, 0x1c
lea esi, [ebp - 0x319c]
mov ebp, dword [esi + 0x3188]
lea ecx, [esi + 0x70]
call fcn.100075b0
add esp, 0x1c
pop ebp
ret