Function at 0x10054cc0
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.100f1630
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], 0x100587d0
mov ecx, dword fs:[0]
mov dword [esi + 0x3190], ecx
mov dword fs:[0], eax
mov ecx, dword [0x102700e4]
mov eax, dword [ecx]
call dword [eax + 0x68]
mov edi, dword [0x1026fd1c]
test al, al
je 0x10054d40
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 0x10054dd1
cmp dword [edi + 0x10], 0
je 0x10054d4f
mov ecx, edi
call fcn.1001dfb0
jmp 0x10054d40
cmp dword [edi + 4], 0
je 0x10055e79
mov ecx, edi
call fcn.1001e040
jmp 0x10055e79
movss xmm0, dword [esi + 0x148]
mov dword [esi + 0xd0], 0
movss dword [esi + 0xd4], xmm0
mov dword [esi + 0xd8], 0
mov eax, dword [0x1026fc70]
mov ecx, edi
lea edx, [esi + 0xd0]
push edx
call dword [eax + 0x2ec]
mov eax, dword [0x1026fc70]
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 0x10055c72
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 0x10054dd0
mov eax, dword [0x1026fc80]
bswap eax
mov edx, dword [0x1026fc84]
add edx, eax
mov dword [esi], ecx
mov ecx, dword [0x1026fc88]
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 0x10054dd0
mov eax, dword [eax + 0x18]
test eax, eax
je 0x10054dbd
mov ecx, dword [eax + 0x24]
test ecx, ecx
je 0x10054dbd
mov eax, dword [0x1026fc70]
mov edx, dword [eax + 0x184]
cmp byte [edx + ecx], 0
mov edx, dword [esi + 4]
jne 0x10054dbd
mov edx, dword [eax + 0x1c]
cmp dword [edx + ecx], 0
mov edx, dword [esi + 4]
jle 0x10054dbd
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 0x10054e90
movups xmmword [edi], xmm3
mov byte [edi + 0x10], 0
mov ecx, dword [esi]
mov ecx, dword [ecx + 0x18]
mov edi, dword [ecx + 0x24]
test edi, edi
je 0x10054ff8
mov ecx, dword [eax + 0x184]
cmp byte [ecx + edi], 0
je 0x10055193
mov ecx, dword [esi]
cmp dword [ecx + 0x30e8], 0
jne 0x10055b39
mov dword [esi + 8], ebx
cmp byte [ecx + 0x24], 0
je 0x100560e4
mov eax, dword [ecx + 0x18]
mov edi, dword [eax + 0x24]
test edi, edi
je 0x10055035
mov eax, dword [0x1026fc70]
mov ecx, dword [eax + 0x184]
cmp byte [ecx + edi], 0
mov ecx, dword [esi]
je 0x100555d3
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 + 0x24]
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 [0x10270124]
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 + 0x24]
je 0x100552e8
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 [0x101422a0]
mulss xmm0, xmm0
addss xmm0, xmm1
mulss xmm2, xmm2
addss xmm2, xmm0
xorps xmm0, xmm0
cvtss2sd xmm0, xmm2
ucomisd xmm0, qword [0x10143af0]
xorps xmm3, xmm3
jb 0x1005533c
mov ecx, ebx
sqrtsd xmm4, xmm0
jmp 0x1005535f
mov eax, dword [eax + 0x1c]
cmp dword [eax + edi], 0
jle 0x10054ff8
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 0x10054ff8
mov dword [esi + 8], ebx
mov ebx, dword [0x1026fc70]
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 0x10055233
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 0x10054ff8
movss xmm0, dword [eax + 0x80]
movss dword [esi + 0x148], xmm0
jmp 0x10054ff8
xorps xmm0, xmm0
movaps xmmword [esi + 0x50], xmm0
mov dword [esi + 0x60], 0
mov dword [esi + 0x64], 0xf
cmp byte [ebx + 0x24], 0
je 0x10056107
mov eax, dword [ebx + 0x1c]
mov eax, dword [eax + 0x6370]
cmp eax, 0xd
ja case.default.0x10055319
jmp dword [eax*4 + 0x1014413c]
mov dword [esi + 0x3198], 0
lea ecx, [esi + 0x50]
push str.low_lby
call fcn.10056160
jmp 0x1005582d
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], 0x7a33b845
mov eax, dword [esi + 0x70]
bswap eax
mov dword [esi + 0x70], eax
add dword [esi + 0x70], 0xba47d168
mov eax, dword [esi + 0x70]
rol eax, 8
mov dword [esi + 0x70], eax
mov edi, dword [esi + 0x70]
mov dword [esi + 0x70], 0x72a3948d
mov eax, dword [esi + 0x70]
bswap eax
mov dword [esi + 0x70], eax
add dword [esi + 0x70], 0xeab5c8e
mov eax, dword [esi + 0x70]
rol eax, 0xe
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 [0x10143af0]
jb 0x100553f8
sqrtsd xmm0, xmm0
jmp 0x10055420
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, 0xffb89831
jbe 0x1005550b
mov ecx, 0x3895eb49
mov dword [esi + 0x24], ecx
mov dword [esi + 0x20], eax
mov eax, 0x182cc1e9
mov ecx, 0xd2ccb60f
mov dword [esi + 0x2c], ecx
mov dword [esi + 0x28], eax
mov eax, 0x403cdc87
mov ecx, 0xe3ee72f7
mov dword [esi + 0x18], eax
mov edx, 0x840a4134
mov edi, 0xeb71efbe
mov ebx, 0xdfdded55
mov eax, 0x57b5843d
mov dword [esi + 0x74], eax
mov dword [esi + 0x70], ebx
mov eax, 0x6d40a28a
mov ebx, 0xbca3df7c
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 0x1005556a
mov ecx, 0x2495eb49
mov dword [esi + 0x24], ecx
mov dword [esi + 0x20], eax
mov eax, 0xc25d0fa
mov ecx, 0xbca3df18
mov dword [esi + 0x2c], ecx
mov dword [esi + 0x28], eax
mov eax, 0xdfdded55
mov ecx, 0x57b5843d
mov dword [esi + 0x74], ecx
mov dword [esi + 0x70], eax
mov eax, 0x6d40a28a
mov ecx, 0xbca3df7c
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 0x100560f3
mov edi, eax
cmp eax, 0xf
ja 0x1005559d
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 0x10055729
mov ebx, edi
or ebx, 0xf
cmp ebx, 0x17
mov eax, 0x16
cmovb ebx, eax
cmp ebx, 0xfff
jb 0x10055708
lea eax, [ebx + 0x24]
push eax
call fcn.100f13cd
add esp, 4
lea ecx, [eax + 0x23]
and ecx, 0xffffffe0
mov dword [ecx - 4], eax
jmp 0x10055716
mov ebx, dword [ecx + 0x1c]
mov eax, dword [eax + 0x1c]
cmp dword [eax + edi], 0
mov dword [esi + 0x3198], 0xffffffff
jle 0x10055035
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 0x10055035
cmp byte [ebx + 0x642b], 0
je 0x10055647
mov eax, dword [edi + 0x2900]
test eax, eax
je 0x10055647
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 [0x1026fc70]
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 [0x1026fc70]
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 0x100556c3
lea ecx, [ebx + 0x63b0]
mov dword [esi + 0x10], ecx
lea edx, [ebx + 0x63dc]
mov ecx, dword [0x1026fc70]
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 [0x1026fc70]
mov ecx, edi
lea edx, [esi + 0xd0]
push edx
call dword [eax + 0x2ec]
xorps xmm3, xmm3
xorps xmm4, xmm4
mov ecx, dword [esi]
jmp 0x10055035
lea eax, [ebx + 1]
push eax
call fcn.100f13cd
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.10054a50
add esp, 0x18
mov esp, dword [esi + 0xc]
jmp 0x10055b2e
mov dword [esi + 0x3198], 0
lea ecx, [esi + 0x50]
push str.last_move
call fcn.10056160
mov eax, dword [esi]
mov eax, dword [eax + 0x18]
mov ecx, 0x3c70
jmp 0x10055912
mov dword [esi + 0x3198], 0
lea ecx, [esi + 0x50]
push str.fake_walk
call fcn.10056160
jmp 0x10055916
mov dword [esi + 0x3198], 0
lea ecx, [esi + 0x50]
push str.anti_freestanding
call fcn.10056160
mov eax, dword [esi]
mov eax, dword [eax + 0x18]
mov ecx, 0x3c7c
jmp 0x10055912
mov dword [esi + 0x3198], 0
lea ecx, [esi + 0x50]
push str.backwards
call fcn.10056160
mov eax, dword [esi]
mov eax, dword [eax + 0x18]
mov ecx, 0x3c78
jmp 0x10055912
mov dword [esi + 0x3198], 0
lea ecx, [esi + 0x50]
push str.lby_delta
call fcn.10056160
jmp 0x10055853
mov dword [esi + 0x3198], 0
lea ecx, [esi + 0x50]
push str.brute
call fcn.10056160
mov eax, dword [esi]
mov eax, dword [eax + 0x18]
mov ecx, 0x3c6c
jmp 0x10055912
mov dword [esi + 0x3198], 0
lea ecx, [esi + 0x50]
push str.body_flick
call fcn.10056160
mov eax, dword [esi]
mov eax, dword [eax + 0x18]
mov ecx, 0x3c8c
jmp 0x10055912
mov dword [esi + 0x3198], 0
lea ecx, [esi + 0x50]
push 0x10167476
call fcn.10056160
mov eax, dword [esi]
mov eax, dword [eax + 0x18]
mov ecx, 0x3c80
jmp 0x10055912
mov dword [esi + 0x3198], 0
lea ecx, [esi + 0x50]
push str.brute_n_
call fcn.10056160
mov eax, dword [esi]
mov eax, dword [eax + 0x18]
mov ecx, 0x3c68
jmp 0x10055912
mov dword [esi + 0x3198], 0
lea ecx, [esi + 0x50]
push 0x101677f0
call fcn.10056160
mov eax, dword [esi]
mov eax, dword [eax + 0x18]
mov ecx, 0x3c88
jmp 0x10055912
mov dword [esi + 0x3198], 0
lea ecx, [esi + 0x50]
push str.in_air
call fcn.10056160
mov eax, dword [esi]
mov eax, dword [eax + 0x18]
mov ecx, 0x3c44
jmp 0x10055912
mov dword [esi + 0x3198], 0
lea ecx, [esi + 0x50]
push str.forwards
call fcn.10056160
mov eax, dword [esi]
mov eax, dword [eax + 0x18]
mov ecx, 0x3c74
jmp 0x10055912
mov dword [esi + 0x3198], 0
lea ecx, [esi + 0x50]
push str.anim_lby
call fcn.10056160
mov eax, dword [esi]
mov eax, dword [eax + 0x18]
mov ecx, 0x3c84
add eax, ecx
inc dword [eax]
mov eax, 0xffb89831
mov ecx, 0x2595eb49
mov dword [esi + 0x24], ecx
mov dword [esi + 0x20], eax
mov eax, 0x12fd1ef
mov ecx, 0x94d1ba0a
mov dword [esi + 0x2c], ecx
mov dword [esi + 0x28], eax
mov eax, 0x4015afa2
mov ecx, 0xe3ee72f7
mov dword [esi + 0x34], ecx
mov dword [esi + 0x30], eax
mov eax, 0x840a4134
mov ecx, 0xeb71efbe
mov edx, 0xdfdded55
mov edi, 0x57b5843d
mov dword [esi + 0x74], edi
mov dword [esi + 0x70], edx
mov edx, 0x6d40a28a
mov edi, 0xbca3df7c
mov dword [esi + 0x7c], edi
mov dword [esi + 0x78], edx
mov edx, 0x403cdc87
mov edi, 0xe3ee72f7
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.100561e0
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 0x100559f2
mov eax, dword [esi + 0x70]
mov edi, dword [esi + 0x80]
test edi, edi
js 0x100560f8
cmp edi, 0xf
mov dword [esi + 0x10], ecx
ja 0x10055a1a
mov dword [edx + 0x10], edi
mov dword [edx + 0x14], 0xf
movups xmm0, xmmword [eax]
movups xmmword [edx], xmm0
jmp 0x10055a94
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 0x10055a5f
lea eax, [edi + 0x24]
mov dword [esi + 0x3198], 1
push eax
call fcn.100f13cd
add esp, 4
mov ecx, eax
add eax, 0x23
and eax, 0xffffffe0
mov dword [eax - 4], ecx
jmp 0x10055a75
lea eax, [edi + 1]
mov dword [esi + 0x3198], 1
push eax
call fcn.100f13cd
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.10054a50
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 0x10055af3
mov ecx, dword [esi + 0x70]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x10055ae3
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x100560de
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.100f14b0
add esp, 8
mov edx, dword [esi + 4]
xorps xmm4, xmm4
mov eax, dword [esi + 0x64]
cmp eax, 0x10
xorps xmm3, xmm3
jb 0x10055b37
mov ecx, dword [esi + 0x50]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x10055b24
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x100560de
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.100f14b0
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 + 0x24]
test edi, edi
je 0x10054dba
mov eax, dword [0x1026fc70]
mov ecx, dword [eax + 0x184]
cmp byte [ecx + edi], 0
jne 0x10054dba
mov eax, dword [eax + 0x1c]
cmp dword [eax + edi], 0
jle 0x10054dba
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 0x10054dba
mov ecx, dword [esi + 0x3174]
mov eax, dword [0x1026fc70]
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 0x10055be4
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 [0x1026fc70]
mov ecx, dword [esi + 0x317c]
mov eax, dword [eax + 0x18]
mov dword [edi + eax + 4], ecx
mov eax, dword [0x1026fc70]
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 0x10054d65
mov edx, dword [0x1026fc70]
mov ecx, eax
lea eax, [esi + 0x13c]
push eax
lea eax, [esi + 0x130]
push eax
call dword [edx + 0x300]
jmp 0x10054d65
mov dword [esi + 0x3198], 0
lea ecx, [esi + 0x50]
push 0x10167453
call fcn.10056160
jmp 0x10055916
mov dword [esi + 0xc], esp
mov eax, dword [0x1026fd1c]
mov dword [esi + 0x18], eax
push eax
sub esp, 0x18
mov edx, esp
mov dword [esi + 0x48], esp
mov eax, dword [0x1026fd1c]
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 [0x1026fd1c]
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 0x10055cf5
mov ecx, dword [ecx]
mov dword [esi], ecx
test eax, eax
jne 0x10055d03
jmp 0x10055e0d
mov dword [esi], 0
test eax, eax
je 0x10055e0d
movaps xmm0, xmmword [0x10142200]
movss xmm1, dword [0x10143c98]
jmp 0x10055d28
inc ebx
dec eax
je 0x10055e18
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 0x10055d48
cmp dword [edx + 0x30d4], 0
jne 0x10055d20
mov ecx, dword [0x1026fc80]
bswap ecx
mov edi, dword [0x1026fc84]
add edi, ecx
mov ecx, dword [0x1026fc88]
ror edi, cl
movss xmm2, dword [edi]
subss xmm2, dword [edx + 0x30b4]
andps xmm2, xmm0
ucomiss xmm2, xmm1
jae 0x10055e0d
cmp byte [edx + 0x30c0], 0
jne 0x10055d20
cmp dword [edx + 0x30d4], 0
jne 0x10055d20
cmp dword [edx + 0x30c8], 0xffffffff
je 0x10055d20
cmp dword [edx + 0x30d0], 0xffffffff
je 0x10055d20
mov ecx, dword [0x1026fc8c]
bswap ecx
mov edi, dword [0x1026fc90]
add edi, ecx
mov ecx, dword [0x1026fc94]
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 0x10055d20
mov ecx, dword [0x1026fc80]
bswap ecx
mov edi, dword [0x1026fc84]
add edi, ecx
mov ecx, dword [0x1026fc88]
ror edi, cl
movss xmm2, dword [edi]
subss xmm2, dword [edx + 0x30b8]
andps xmm2, xmm0
ucomiss xmm2, xmm1
ja 0x10055e0d
movss xmm3, dword [edx + 0x30bc]
ucomiss xmm3, xmm2
jae 0x10055d20
mov eax, dword [esi + 8]
cmp ebx, eax
jne 0x10055e1d
mov ebx, eax
jmp 0x10055e28
mov ebx, dword [esi + 8]
jmp 0x10055e28
lea edi, [ebx + 1]
cmp edi, eax
jne 0x10055f32
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.10052430
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.100f14b0
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 0x10055e28
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 0x10055ff0
cmp dword [eax + 0x30d4], 0
je 0x10055ff0
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.100345f0
cmp ebx, edi
je 0x10055ee9
lea ecx, [ebx + 0x309c]
mov eax, dword [ebx + 0x30b0]
cmp eax, 0x10
jb 0x10055e9d
mov dword [esi + 0x10], ecx
mov ecx, dword [ecx]
lea edx, [eax + 1]
cmp edx, 0x1000
jb 0x10055e90
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
mov dword [esi + 0xb8], edx
sub ecx, edx
cmp ecx, 0x20
jae 0x100560de
add eax, 0x24
mov edx, eax
mov ecx, dword [esi + 0xb8]
jmp 0x10055e90
mov ecx, dword [0x1026fc80]
bswap ecx
mov edx, dword [0x1026fc84]
add edx, ecx
mov ecx, dword [0x1026fc88]
ror edx, cl
movss xmm0, dword [edx]
subss xmm0, dword [eax + 0x30b4]
andps xmm0, xmmword [0x10142200]
ucomiss xmm0, dword [0x10143c98]
jae 0x10055f28
cmp byte [eax + 0x30c0], 0
jne 0x10055f5a
cmp dword [eax + 0x30d4], 0
jne 0x10055f5a
cmp dword [eax + 0x30c8], 0xffffffff
je 0x10055f5a
cmp dword [eax + 0x30d0], 0xffffffff
je 0x10055f5a
mov ecx, dword [0x1026fc8c]
bswap ecx
mov edx, dword [0x1026fc90]
add edx, ecx
mov ecx, dword [0x1026fc94]
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 0x10055f5a
mov ecx, dword [0x1026fc80]
bswap ecx
mov edx, dword [0x1026fc84]
add edx, ecx
mov ecx, dword [0x1026fc88]
ror edx, cl
movss xmm0, dword [edx]
subss xmm0, dword [eax + 0x30b8]
andps xmm0, xmmword [0x10142200]
ucomiss xmm0, dword [0x10143c98]
ja 0x10055f28
movss xmm1, dword [eax + 0x30bc]
ucomiss xmm1, xmm0
jb 0x10055f28
jmp 0x10055f5a
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
mov dword [esi + 0x3198], 0xffffffff
call fcn.10031090
call fcn.100190e0
mov dword [esi + 0x3198], 1
call fcn.100190e0
mov dword [esi + 0x3198], 0
call fcn.10031090
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.10007600
add esp, 0x1c
pop ebp
ret