Function at 0x101598b0
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
mov eax, 0x4190
call fcn.100a0400
mov eax, dword [0x10259b00]
xor eax, esp
mov dword [esp + 0x418c], eax
cmp dword [esp + 0x41a8], 0
xorps xmm0, xmm0
mov eax, dword [esp + 0x4198]
push esi
mov esi, dword [esp + 0x4198]
push edi
mov edi, dword [esp + 0x41a4]
mov dword [esp + 0x5c], esi
mov dword [esp + 0x58], eax
mov dword [esp + 0x10], edi
movups xmmword [esp + 0x36dc], xmm0
je 0x1015990a
mov dword [esp + 0x54], 5
jmp 0x1015991e
mov eax, dword [esp + 0x41ac]
cdq
and edx, 3
add eax, edx
sar eax, 2
mov dword [esp + 0x54], eax
xor eax, eax
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x38], eax
xor al, al
mov byte [esp + 0xf], al
mov al, byte [esi + 0x120c]
inc dword [esi + 0x120c]
and al, 3
push ebx
mov byte [esi + 0x12a2], al
lea ebx, [esp + 0x3710]
mov eax, dword [esi + 0x11f0]
push ebp
push dword [esi + 0x11e8]
shl eax, 2
lea ebp, [esi + 0x1c0c]
add ebp, eax
add ebx, eax
lea eax, [esi + 0x13ea]
mov dword [esp + 0x30], ebp
push eax
lea eax, [esi + 0x10]
mov dword [esp + 0x3c], ebx
push eax
call fcn.1015da00
mov edx, dword [esi + 0x11e0]
add esp, 0xc
lea eax, [edx + edx*4]
lea ebp, [ebp + eax*4]
mov eax, dword [esi + 0x11e8]
lea ecx, [eax - 1]
test ecx, ecx
js 0x10159a54
cmp eax, 4
jl 0x10159a29
lea ebx, [ecx + 1]
shr ebx, 2
lea edi, [ecx*4 - 8]
mov eax, ebx
lea edx, [esi + 0x13e8]
add edi, ebp
lea edx, [edx + ecx*2]
neg eax
lea ecx, [ecx + eax*4]
nop dword [eax]
movsx eax, word [edx + 2]
lea edx, [edx - 8]
lea edi, [edi - 0x10]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [edi + 0x18], xmm0
movsx eax, word [edx + 8]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [edi + 0x14], xmm0
movsx eax, word [edx + 6]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [edi + 0x10], xmm0
movsx eax, word [edx + 4]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [edi + 0xc], xmm0
sub ebx, 1
jne 0x101599d0
mov edx, dword [esi + 0x11e0]
mov ebx, dword [esp + 0x34]
mov edi, dword [esp + 0x18]
test ecx, ecx
js 0x10159a54
lea edx, [esi + 0x13ea]
lea edx, [edx + ecx*2]
movsx eax, word [edx]
lea edx, [edx - 2]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [ebp + ecx*4], xmm0
sub ecx, 1
jns 0x10159a36
mov edx, dword [esi + 0x11e0]
mov ebp, dword [esp + 0x2c]
lea eax, [edx + edx*4]
movss xmm1, dword [0x1024c594]
movss xmm0, dword [ebp + eax*4]
addss xmm0, xmm1
movss dword [ebp + eax*4], xmm0
mov eax, dword [esi + 0x11e0]
mov ecx, dword [esi + 0x11e8]
sar ecx, 3
lea eax, [eax + eax*4]
add ecx, eax
movss xmm0, dword [ebp + ecx*4]
addss xmm0, xmm1
movss dword [ebp + ecx*4], xmm0
mov eax, dword [esi + 0x11e0]
mov ecx, dword [esi + 0x11e8]
sar ecx, 3
lea eax, [eax + eax*4]
lea eax, [eax*4]
add eax, ebp
movss xmm0, dword [eax + ecx*8]
subss xmm0, xmm1
movss dword [eax + ecx*8], xmm0
mov eax, dword [esi + 0x11e8]
sar eax, 3
lea ecx, [eax + eax*2]
mov eax, dword [esi + 0x11e0]
lea eax, [eax + eax*4]
lea eax, [eax*4]
add eax, ebp
movss xmm0, dword [eax + ecx*4]
subss xmm0, xmm1
movss dword [eax + ecx*4], xmm0
mov ecx, dword [esi + 0x11e8]
mov eax, dword [esi + 0x11e0]
sar ecx, 3
shl ecx, 4
add ecx, ebp
lea eax, [eax + eax*4]
movss xmm0, dword [ecx + eax*4]
addss xmm0, xmm1
movss dword [ecx + eax*4], xmm0
mov eax, dword [esi + 0x11e8]
sar eax, 3
add eax, dword [esi + 0x11e0]
lea eax, [eax + eax*4]
movss xmm0, dword [ebp + eax*4]
addss xmm0, xmm1
movss dword [ebp + eax*4], xmm0
mov eax, dword [esi + 0x11e8]
sar eax, 3
lea ecx, [eax + eax*2]
mov eax, dword [esi + 0x11e0]
lea eax, [eax + eax*4]
lea eax, [eax*4]
add eax, ebp
movss xmm0, dword [eax + ecx*8]
subss xmm0, xmm1
movss dword [eax + ecx*8], xmm0
mov eax, dword [esi + 0x11e8]
sar eax, 3
lea ecx, [eax*8]
sub ecx, eax
mov eax, dword [esi + 0x11e0]
lea eax, [eax + eax*4]
lea eax, [eax*4]
add eax, ebp
movss xmm0, dword [eax + ecx*4]
subss xmm0, xmm1
movss dword [eax + ecx*4], xmm0
cmp dword [esi + 0x1248], 0
jne 0x1015a4ca
push dword [esi + 0x13e4]
lea eax, [esp + 0x3718]
push ebp
push eax
lea eax, [esp + 0x22e4]
push eax
push esi
call fcn.1015eb60
push ebp
push ebx
lea eax, [esp + 0x22f4]
push eax
push esi
call fcn.1015daa0
mov ebp, dword [esp + 0x41d4]
lea eax, [esp + 0x22fc]
push ebp
push dword [esp + 0x54]
push ebx
push eax
push esi
call fcn.1015ee70
push ebp
lea eax, [esp + 0x2314]
push eax
push esi
call fcn.1015f190
mov ecx, dword [esi + 0x1674]
add esp, 0x44
lea edi, [ecx*8 + 0x5f5]
add edi, ecx
cmp dword [esi + 0x17cc], 0
lea edi, [esi + edi*4]
je 0x10159d6f
cmp dword [esi + 0x11b4], 0x4d
jle 0x10159d6f
push 0x1100
lea eax, [esi + 0x94]
mov dword [esi + ecx*4 + 0x1274], 1
push eax
lea eax, [esp + 0x25cc]
push eax
call fcn.100a1aa0
movups xmm0, xmmword [esi + 0x1280]
movups xmmword [edi], xmm0
movups xmm0, xmmword [esi + 0x1290]
movups xmmword [edi + 0x10], xmm0
mov eax, dword [esi + 0x12a0]
mov dword [edi + 0x20], eax
mov eax, dword [esi + 0x11e4]
shl eax, 2
push eax
lea eax, [esp + 0x22e8]
push eax
lea eax, [esp + 0x36d8]
push eax
call fcn.100a1aa0
mov eax, dword [esi + 0x1674]
add esp, 0x18
test eax, eax
je 0x10159c9c
cmp dword [esi + eax*4 + 0x1270], 0
jne 0x10159cbf
mov al, byte [esi + 0x1c00]
mov edx, 0x3f
mov cl, byte [esi + 0x17d0]
mov byte [esi + 0x11bc], al
add cl, byte [edi]
cmp cl, dl
movzx eax, cl
cmovl edx, eax
mov byte [edi], dl
push dword [esi + 0x11e4]
xor eax, eax
cmp ebp, 2
sete al
push eax
lea eax, [esi + 0x11bc]
push eax
lea eax, [esp + 0x36e0]
push edi
push eax
call fcn.1015d180
mov ecx, dword [esi + 0x11e4]
add esp, 0x14
xor eax, eax
test ecx, ecx
jle 0x10159d1e
movss xmm1, dword [0x10248f44]
nop word [eax + eax]
movd xmm0, dword [esp + eax*4 + 0x36d4]
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [esp + eax*4 + 0x22d8], xmm0
inc eax
cmp eax, ecx
jl 0x10159d00
mov eax, dword [esi + 0x1674]
push dword [esp + 0x2c]
lea eax, [eax + eax*4]
shl eax, 6
add eax, 0x1840
add eax, esi
push eax
lea eax, [esp + 0x25cc]
push eax
push edi
lea eax, [esp + 0x22e8]
push eax
push esi
call fcn.1015f6a0
mov eax, dword [esi + 0x11e4]
shl eax, 2
push eax
lea eax, [esp + 0x36e0]
push eax
lea eax, [esp + 0x22f8]
push eax
call fcn.100a1aa0
add esp, 0x24
push dword [esi + 0x11e4]
lea ebp, [esi + 0x1280]
mov dword [esp + 0x14], 0x100
push ebp
mov dword [esp + 0x28], 0
mov dword [esp + 0x44], 0
call fcn.1015d150
mov edi, dword [esp + 0x20]
mov ebx, eax
or eax, 0xffffffff
mov dword [esp + 0x38], eax
mov dword [esp + 0x40], eax
lea eax, [esi + 0x94]
movups xmm0, xmmword [edi]
push 0x1100
push eax
movups xmmword [esp + 0x88], xmm0
lea eax, [esp + 0xe8]
movups xmm0, xmmword [edi + 0x10]
push eax
movups xmmword [esp + 0x9c], xmm0
movups xmm0, xmmword [edi + 0x20]
movups xmmword [esp + 0xac], xmm0
call fcn.100a1aa0
movups xmm0, xmmword [esp + 0xcc]
mov al, byte [esi + 0x12a2]
add esp, 0x14
movups xmm1, xmmword [esp + 0xc8]
mov byte [esp + 0x1f], al
movzx eax, word [esi + 0x168c]
movups xmmword [esp + 0x36c4], xmm0
mov dword [esp + 0x50], eax
movups xmm0, xmmword [esp + 0xa8]
mov eax, dword [esi + 0x1688]
mov dword [esp + 0x54], eax
xor eax, eax
movups xmmword [esp + 0x36d4], xmm1
movups xmmword [esp + 0x68], xmm0
mov edx, dword [esp + 0x30]
mov dword [esp + 0x24], eax
cmp ebx, edx
jne 0x10159e50
mov ebp, dword [esp + 0x40]
mov dword [esp + 0x28], ebp
jmp 0x1015a08c
cmp ebx, dword [esp + 0x38]
jne 0x10159e63
mov ebp, dword [esp + 0x44]
mov dword [esp + 0x28], ebp
jmp 0x1015a08c
test eax, eax
jle 0x10159ec2
movups xmm0, xmmword [esp + 0x78]
push 0x1100
lea eax, [esp + 0xdc]
movups xmmword [edi], xmm0
push eax
movups xmm0, xmmword [esp + 0x90]
lea eax, [esi + 0x94]
push eax
movups xmmword [edi + 0x10], xmm0
movups xmm0, xmmword [esp + 0xa4]
movups xmmword [edi + 0x20], xmm0
call fcn.100a1aa0
mov al, byte [esp + 0x2b]
add esp, 0xc
mov byte [esi + 0x12a2], al
mov eax, dword [esp + 0x50]
mov word [esi + 0x168c], ax
mov eax, dword [esp + 0x54]
mov dword [esi + 0x1688], eax
push dword [esp + 0x2c]
lea edi, [esi + 0x12a4]
push edi
lea eax, [esi + 0x94]
push eax
push ebp
lea eax, [esp + 0x22e8]
push eax
push esi
call fcn.1015f6a0
mov eax, dword [esp + 0x30]
add esp, 0x18
cmp dword [esp + 0x24], 6
jne 0x10159f18
cmp dword [esp + 0x20], 0
jne 0x10159f18
movups xmm0, xmmword [eax]
movups xmmword [esp + 0x68], xmm0
movups xmm0, xmmword [eax + 0x10]
movups xmmword [esp + 0x36c4], xmm0
movups xmm0, xmmword [eax + 0x20]
movups xmmword [esp + 0x36d4], xmm0
push dword [esp + 0x41b0]
push 0
push dword [esi + 0x1674]
push eax
push esi
call fcn.101592d0
push dword [esi + 0x11e8]
movsx eax, byte [esi + 0x129e]
push edi
mov edi, dword [esp + 0x34]
push eax
movsx eax, byte [esi + 0x129d]
push eax
push edi
call fcn.10158e60
bsr eax, dword [edi + 0x1c]
mov ebp, dword [edi + 0x14]
add esp, 0x28
mov ecx, dword [esp + 0x41b4]
sub ebp, eax
mov eax, dword [esp + 0x24]
dec ebp
mov dword [esp + 0x28], ebp
cmp eax, 6
jne 0x1015a070
cmp dword [esp + 0x20], 0
jne 0x1015a070
cmp ebp, ecx
jle 0x1015a070
movups xmm0, xmmword [esp + 0x68]
mov cl, byte [esp + 0x25c0]
xor eax, eax
movups xmmword [edi], xmm0
movups xmm0, xmmword [esp + 0x36c4]
movups xmmword [edi + 0x10], xmm0
movups xmm0, xmmword [esp + 0x36d4]
movups xmmword [edi + 0x20], xmm0
mov byte [esi + 0x1c00], cl
cmp dword [esi + 0x11e4], eax
jle 0x10159fd1
nop
mov byte [esi + eax + 0x1280], 4
inc eax
cmp eax, dword [esi + 0x11e4]
jl 0x10159fc0
mov edx, dword [esp + 0x41b0]
cmp edx, 2
je 0x10159fe3
mov byte [esi + 0x1280], cl
mov eax, dword [esp + 0x50]
mov word [esi + 0x168c], ax
mov eax, dword [esp + 0x54]
mov dword [esi + 0x1688], eax
xor eax, eax
cmp dword [esi + 0x11e8], eax
jle 0x1015a021
nop dword [eax]
nop word [eax + eax]
mov byte [esi + eax + 0x12a4], 0
inc eax
cmp eax, dword [esi + 0x11e8]
jl 0x1015a010
push edx
push 0
push dword [esi + 0x1674]
push edi
push esi
call fcn.101592d0
push dword [esi + 0x11e8]
lea eax, [esi + 0x12a4]
push eax
movsx eax, byte [esi + 0x129e]
push eax
movsx eax, byte [esi + 0x129d]
push eax
push edi
call fcn.10158e60
bsr eax, dword [edi + 0x1c]
mov ebp, dword [edi + 0x14]
add esp, 0x28
mov ecx, dword [esp + 0x41b4]
sub ebp, eax
mov eax, dword [esp + 0x24]
dec ebp
mov dword [esp + 0x28], ebp
cmp dword [esp + 0x41b8], 0
jne 0x1015a088
test eax, eax
jne 0x1015a088
cmp ebp, ecx
jle 0x1015a4ca
jmp 0x1015a0a4
mov edx, dword [esp + 0x30]
cmp eax, 6
je 0x1015a42c
mov ecx, dword [esp + 0x41b4]
cmp ebp, ecx
jle 0x1015a20b
cmp dword [esp + 0x20], 0
jne 0x1015a0f9
cmp eax, 2
jl 0x1015a0f9
movss xmm0, dword [esp + 0x258c]
mulss xmm0, dword [0x1024367c]
comiss xmm0, dword [0x1024367c]
jbe 0x1015a0d5
movss dword [esp + 0x258c], xmm0
jmp 0x1015a0e0
mov dword [esp + 0x258c], 0x3fc00000
mov byte [esi + 0x129e], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], 0xffffffff
jmp 0x1015a11d
cmp dword [esp + 0x20], 0
mov eax, dword [esp + 0x10]
cwde
mov dword [esp + 0x3c], 1
mov dword [esp + 0x44], ebp
mov dword [esp + 0x4c], eax
mov dword [esp + 0x38], ebx
jne 0x1015a1c9
mov ecx, dword [esi + 0x11e4]
xor ebp, ebp
test ecx, ecx
jle 0x1015a1c5
mov edi, dword [esi + 0x11ec]
xor edx, edx
mov dword [esp + 0x34], edx
mov dword [esp + 0x58], edi
nop dword [eax]
xor ebx, ebx
cmp edx, edi
jge 0x1015a170
lea ecx, [esi + 0x12a4]
add ecx, edx
sub edi, edx
movsx eax, byte [ecx]
lea ecx, [ecx + 1]
cdq
xor eax, edx
sub eax, edx
add ebx, eax
sub edi, 1
jne 0x1015a150
mov ecx, dword [esi + 0x11e4]
mov edx, dword [esp + 0x34]
mov edi, dword [esp + 0x58]
cmp dword [esp + 0x24], 0
je 0x1015a197
lea eax, [esp + 0x36e4]
lea eax, [eax + ebp*4]
cmp ebx, dword [esp + ebp*4 + 0x3704]
jge 0x1015a18f
cmp dword [eax], 0
je 0x1015a197
mov dword [eax], 1
jmp 0x1015a1aa
mov eax, dword [esp + 0x10]
mov dword [esp + ebp*4 + 0x3704], ebx
mov word [esp + ebp*2 + 0x4194], ax
mov eax, dword [esi + 0x11ec]
inc ebp
add edi, eax
add edx, eax
mov dword [esp + 0x58], edi
mov dword [esp + 0x34], edx
cmp ebp, ecx
jl 0x1015a140
mov ebp, dword [esp + 0x28]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x20]
test dword [esp + 0x3c], ecx
jne 0x1015a2d8
movsx ecx, ax
cmp ebp, dword [esp + 0x41b4]
jle 0x1015a2b5
lea eax, [ecx + ecx*2]
cdq
sub eax, edx
sar eax, 1
movzx ecx, ax
cmp eax, 0x400
mov eax, 0x400
cmovg ecx, eax
movzx ebp, cx
jmp 0x1015a32f
mov eax, ecx
sub eax, dword [esp + 0x5c]
cmp ebp, eax
jge 0x1015a4ca
mov eax, dword [esp + 0x10]
movsx ecx, ax
mov dword [esp + 0x20], 1
mov dword [esp + 0x40], ebp
mov dword [esp + 0x48], ecx
cmp ebx, edx
je 0x1015a1cd
cmp dword [edi + 0x18], 0x4fb
movups xmm0, xmmword [edi]
mov dword [esp + 0x30], ebx
movups xmmword [esp + 0x68], xmm0
movups xmm0, xmmword [edi + 0x10]
movups xmmword [esp + 0x36c4], xmm0
movups xmm0, xmmword [edi + 0x20]
movups xmmword [esp + 0x36d4], xmm0
jbe 0x1015a278
push 0x11c
push str.F:_vcpkg_2024.05.24_buildtreesopus_src_v1.5.1_cfcae413d5.clean_silk_floatencode_frame_FLP.c
push str.assertion_failed:_psRangeEnc__offs___1275
call fcn.1012fae0
add esp, 0xc
push dword [edi + 0x18]
lea eax, [esp + 0x25c8]
push dword [edi]
push eax
call fcn.100a1aa0
push 0x1100
lea eax, [esi + 0x94]
push eax
lea eax, [esp + 0x11ec]
push eax
call fcn.100a1aa0
mov al, byte [esi + 0x1c00]
add esp, 0x18
mov byte [esp + 0x17], al
jmp 0x1015a1c9
shl ecx, 2
mov eax, 0x66666667
imul ecx
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
movzx eax, cx
cmp ecx, 0x40
mov ecx, 0x40
cmovl eax, ecx
jmp 0x1015a32c
mov eax, dword [esp + 0x48]
mov edi, dword [esp + 0x4c]
mov ecx, dword [esp + 0x44]
sub edi, eax
sub ecx, dword [esp + 0x40]
movzx ebx, ax
mov eax, dword [esp + 0x41b4]
sub eax, dword [esp + 0x40]
imul eax, edi
sar edi, 2
cdq
idiv ecx
add eax, ebx
movzx ebp, ax
mov eax, dword [esp + 0x48]
movsx ecx, bp
add eax, edi
mov dword [esp + 0x10], ebp
cmp ecx, eax
jle 0x1015a31c
lea eax, [edi + ebx]
jmp 0x1015a32c
mov edx, dword [esp + 0x4c]
mov eax, edx
sub eax, edi
cmp ecx, eax
jge 0x1015a333
mov eax, edx
sub eax, edi
movzx ebp, ax
mov dword [esp + 0x10], ebp
mov ebx, dword [esi + 0x11e4]
xor edi, edi
test ebx, ebx
jle 0x1015a39d
mov esi, 0xff800000
cmp dword [esp + edi*4 + 0x36e4], 0
je 0x1015a358
movzx eax, word [esp + edi*2 + 0x4194]
jmp 0x1015a35b
movzx eax, bp
mov edx, dword [esp + edi*4 + 0x25b0]
cwde
movzx ecx, dx
imul ecx, eax
sar edx, 0x10
imul eax, edx
sar ecx, 0x10
add eax, ecx
cmp eax, 0x7fffff
jle 0x1015a382
mov eax, 0x7fffff
jmp 0x1015a38a
cmp eax, 0xff800000
cmovl eax, esi
shl eax, 8
mov dword [esp + edi*4 + 0x36f4], eax
inc edi
cmp edi, ebx
jl 0x1015a344
mov esi, dword [esp + 0x64]
mov al, byte [esp + 0x25c0]
lea ecx, [esi + 0x1c00]
push dword [esi + 0x11e4]
mov byte [ecx], al
lea ebp, [esi + 0x1280]
xor eax, eax
cmp dword [esp + 0x41b4], 2
sete al
push eax
push ecx
lea eax, [esp + 0x3700]
push eax
push ebp
call fcn.1015d230
push dword [esi + 0x11e4]
push ebp
call fcn.1015d150
mov ecx, dword [esi + 0x11e4]
mov ebx, eax
add esp, 0x1c
xor eax, eax
test ecx, ecx
jle 0x1015a41e
movss xmm1, dword [0x10248f44]
nop word [eax + eax]
movd xmm0, dword [esp + eax*4 + 0x36f4]
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [esp + eax*4 + 0x22d8], xmm0
inc eax
cmp eax, ecx
jl 0x1015a400
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x18]
inc eax
jmp 0x10159e37
cmp dword [esp + 0x20], 0
je 0x1015a4ca
cmp ebx, edx
je 0x1015a448
cmp ebp, dword [esp + 0x41b4]
jle 0x1015a4ca
movups xmm0, xmmword [esp + 0x68]
movups xmm1, xmmword [esp + 0x36d4]
movups xmmword [edi], xmm0
movups xmm0, xmmword [esp + 0x36c4]
movups xmmword [edi + 0x10], xmm0
psrldq xmm0, 8
movups xmmword [edi + 0x20], xmm1
movd edi, xmm0
cmp edi, 0x4fb
jbe 0x1015a490
push 0xfe
push str.F:_vcpkg_2024.05.24_buildtreesopus_src_v1.5.1_cfcae413d5.clean_silk_floatencode_frame_FLP.c
push str.assertion_failed:_sRangeEnc_copy2.offs___1275
call fcn.1012fae0
add esp, 0xc
push edi
mov edi, dword [esp + 0x1c]
lea eax, [esp + 0x25c8]
push eax
push dword [edi]
call fcn.100a1aa0
push 0x1100
lea eax, [esp + 0x11e8]
push eax
lea eax, [esi + 0x94]
push eax
call fcn.100a1aa0
mov al, byte [esp + 0x2f]
add esp, 0x18
mov byte [esi + 0x1c00], al
mov eax, dword [esi + 0x11e0]
lea eax, [eax + eax*4]
add eax, dword [esi + 0x11f0]
shl eax, 2
push eax
mov eax, dword [esi + 0x11e8]
add eax, 0x703
lea eax, [esi + eax*4]
push eax
lea eax, [esi + 0x1c0c]
push eax
call fcn.100a1aa0
add esp, 0xc
cmp dword [esi + 0x1248], 0
pop ebp
pop ebx
je 0x1015a512
mov eax, dword [esp + 0x58]
mov dword [eax], 0
jmp 0x1015a550
mov eax, dword [esi + 0x11e4]
mov dword [esi + 0x1238], 0
mov eax, dword [esp + eax*4 + 0x23b0]
mov dword [esi + 0x11c0], eax
mov al, byte [esi + 0x129d]
mov byte [esi + 0x11bd], al
bsr eax, dword [edi + 0x1c]
mov ecx, dword [edi + 0x14]
sub ecx, eax
mov eax, dword [esp + 0x58]
add ecx, 6
sar ecx, 3
mov dword [eax], ecx
mov ecx, dword [esp + 0x4194]
xor eax, eax
pop edi
pop esi
xor ecx, esp
call fcn.1009fd88
add esp, 0x4190
ret