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

Disassembly:
push ebp
push edi
mov eax, 0x357c
push esi
push ebx
call fcn.00bd0e20
sub esp, eax
mov ebp, dword [esp + 0x3590]
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], 0
mov dword [esp + 0x90], 0
mov dword [esp + 0x94], 0
mov eax, dword [ebp + 0x120c]
mov edi, dword [ebp + 0x11f0]
lea ebx, [ebp + 0x13ea]
lea edx, [eax + 1]
and eax, 3
shl edi, 2
mov byte [ebp + 0x12a2], al
lea eax, [ebp + 0x1c0c]
mov dword [esp + 0x24], edi
mov dword [ebp + 0x120c], edx
mov dword [esp + 0x60], eax
add eax, edi
mov esi, eax
mov dword [esp + 0x50], eax
mov eax, dword [ebp + 0x11e8]
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
lea eax, [ebp + 0x10]
mov dword [esp], eax
call fcn.00b688c0
mov edi, dword [ebp + 0x11e8]
mov ecx, dword [ebp + 0x11e0]
mov edx, edi
lea eax, [ecx + ecx*4]
sub edx, 1
lea eax, [esi + eax*4]
js 0xb62060
fild word [ebx + edx*2]
fstp dword [eax + edx*4]
sub edx, 1
cmp edx, 0xffffffff
jne 0xb62052
lea ebx, [ecx + ecx*4]
xor edx, edx
mov esi, 1
mov dword [esp + 0x2c], edi
mov dword [esp + 0x28], ebx
mov ebx, edi
sar ebx, 3
shl ebx, 2
mov ecx, edx
mov edi, esi
add edx, 1
and ecx, 2
sub edi, ecx
mov dword [esp + 0x20], edi
fild dword [esp + 0x20]
fmul dword [0xe0d3f0]
fadd dword [eax]
fstp dword [eax]
add eax, ebx
cmp edx, 8
jne 0xb6207a
mov eax, dword [ebp + 0x1248]
mov edi, dword [esp + 0x2c]
test eax, eax
jne 0xb62cba
mov ebx, dword [esp + 0x24]
lea eax, [esp + 0x8f0]
mov edx, dword [ebp + 0x13e4]
mov edi, dword [esp + 0x50]
mov dword [esp], ebp
mov dword [esp + 8], eax
add ebx, eax
lea eax, [esp + 0x108]
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], edi
mov dword [esp + 4], eax
call 0xb63020
lea eax, [esp + 0x108]
mov dword [esp + 0xc], edi
mov dword [esp + 8], ebx
mov dword [esp], ebp
mov dword [esp + 4], eax
call fcn.00b63ba0
mov eax, dword [esp + 0x359c]
mov dword [esp + 0xc], edi
mov dword [esp + 8], ebx
mov dword [esp], ebp
mov dword [esp + 0x10], eax
lea eax, [esp + 0x108]
mov dword [esp + 4], eax
call 0xb63370
mov eax, dword [esp + 0x359c]
mov dword [esp], ebp
mov dword [esp + 8], eax
lea eax, [esp + 0x108]
mov dword [esp + 4], eax
call fcn.00b64740
mov eax, dword [ebp + 0x17cc]
test eax, eax
je 0xb62322
cmp dword [ebp + 0x11b4], 0x4d
jle 0xb62322
mov edx, dword [ebp + 0x1674]
lea esi, [ebp + 0x94]
mov ecx, 0x440
lea edi, [esp + 0x2470]
mov dword [esp + 0x34], esi
lea eax, [edx + edx*8]
mov dword [ebp + edx*4 + 0x1274], 1
mov dword [esp + 0x20], edx
rep movsd dword es:[edi], dword [esi]
lea ebx, [ebp + eax*4 + 0x17d4]
lea eax, [ebp + 0x1280]
mov edi, eax
mov dword [esp + 0x38], eax
mov eax, dword [ebp + 0x1280]
mov dword [ebx], eax
mov eax, dword [edi + 4]
mov dword [ebx + 4], eax
mov eax, dword [edi + 8]
mov dword [ebx + 8], eax
mov eax, dword [edi + 0xc]
mov dword [ebx + 0xc], eax
mov eax, dword [edi + 0x10]
mov dword [ebx + 0x10], eax
mov eax, dword [edi + 0x14]
mov dword [ebx + 0x14], eax
mov eax, dword [edi + 0x18]
mov dword [ebx + 0x18], eax
mov eax, dword [edi + 0x1c]
mov dword [ebx + 0x1c], eax
mov eax, dword [edi + 0x20]
mov dword [ebx + 0x20], eax
mov esi, dword [ebp + 0x11e4]
lea eax, [esp + 0x1370]
mov edi, eax
mov dword [esp + 0x54], eax
lea eax, [esi*4]
mov dword [esp], edi
mov dword [esp + 8], eax
lea eax, [esp + 0x108]
mov dword [esp + 4], eax
call sub.msvcrt.dll_memcpy
mov eax, dword [ebp + 0x1674]
mov edx, dword [esp + 0x20]
test eax, eax
je 0xb62226
mov edi, dword [ebp + eax*4 + 0x1270]
test edi, edi
jne 0xb6225a
movzx eax, byte [ebp + 0x1c00]
mov byte [ebp + 0x11bc], al
lea eax, [edx + edx*8]
lea edx, [ebp + eax*4]
movzx eax, byte [edx + 0x17d4]
add al, byte [ebp + 0x17d0]
movsx eax, al
cmp eax, 0x3f
jle 0xb62254
mov eax, 0x3f
mov byte [edx + 0x17d4], al
xor eax, eax
cmp dword [esp + 0x359c], 2
mov dword [esp + 0x10], esi
lea esi, [esp + 0x3f4]
mov dword [esp + 4], ebx
mov dword [esp], esi
sete al
mov dword [esp + 0xc], eax
lea eax, [ebp + 0x11bc]
mov dword [esp + 8], eax
call fcn.00b687d0
mov edx, dword [ebp + 0x11e4]
xor eax, eax
fld dword [0xe0d3f4]
test edx, edx
jle 0xb622b5
fild dword [esi + eax*4]
fmul st(1)
fstp dword [esp + eax*4 + 0x108]
add eax, 1
cmp eax, edx
jne 0xb6229e
fstp st(0)
jmp 0xb622b7
fstp st(0)
mov eax, dword [esp + 0x50]
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 0x1674]
mov dword [esp + 8], ebx
mov dword [esp], ebp
lea eax, [eax + eax*4]
shl eax, 6
lea eax, [ebp + eax + 0x1840]
mov dword [esp + 0x10], eax
lea eax, [esp + 0x2470]
mov dword [esp + 0xc], eax
lea eax, [esp + 0x108]
mov dword [esp + 4], eax
call fcn.00b64f60
mov ebx, dword [ebp + 0x11e4]
lea eax, [ebx*4]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 4], eax
lea eax, [esp + 0x108]
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
jmp 0xb62347
lea eax, [ebp + 0x94]
mov ebx, dword [ebp + 0x11e4]
mov dword [esp + 0x34], eax
lea eax, [ebp + 0x1280]
mov dword [esp + 0x38], eax
lea eax, [esp + 0x1370]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 4], ebx
mov dword [esp], eax
call fcn.00b68890
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x3598]
mov ecx, 0x440
mov eax, dword [eax]
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0x3598]
mov eax, dword [eax + 4]
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0x3598]
mov eax, dword [eax + 8]
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x3598]
mov eax, dword [eax + 0xc]
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0x3598]
mov eax, dword [eax + 0x10]
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x3598]
mov eax, dword [eax + 0x14]
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0x3598]
mov eax, dword [eax + 0x18]
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0x3598]
mov eax, dword [eax + 0x1c]
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0x3598]
mov eax, dword [eax + 0x20]
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0x3598]
mov eax, dword [eax + 0x24]
mov dword [esp + 0xcc], eax
mov eax, dword [esp + 0x3598]
mov eax, dword [eax + 0x28]
mov edi, dword [esp + 0x54]
mov esi, dword [esp + 0x34]
mov dword [esp + 0x40], 0xffffffff
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0x3598]
mov ecx, 0x100
mov edi, dword [esp + 0x40]
mov dword [esp + 0x5c], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x48], 0
mov eax, dword [eax + 0x2c]
mov dword [esp + 0x44], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x24], 0
mov byte [esp + 0x6e], 0
mov dword [esp + 0xd4], eax
movzx eax, byte [ebp + 0x12a2]
mov word [esp + 0x28], cx
mov dword [esp + 0x4c], 0xffffffff
mov byte [esp + 0x6f], al
movzx eax, word [ebp + 0x168c]
mov word [esp + 0x6c], ax
mov eax, dword [ebp + 0x1688]
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x2c]
cmp eax, edi
je 0xb62b4f
mov edi, dword [esp + 0x4c]
cmp eax, edi
je 0xb6289f
mov edx, dword [esp + 0x24]
test edx, edx
je 0xb62c21
mov edi, dword [esp + 0x3598]
mov eax, dword [esp + 0xa8]
mov esi, dword [esp + 0x54]
mov ebx, dword [esp + 0x34]
mov dword [edi], eax
mov eax, dword [esp + 0xac]
mov dword [edi + 4], eax
mov eax, dword [esp + 0xb0]
mov dword [edi + 8], eax
mov eax, dword [esp + 0xb4]
mov dword [edi + 0xc], eax
mov eax, dword [esp + 0xb8]
mov dword [edi + 0x10], eax
mov eax, dword [esp + 0xbc]
mov dword [edi + 0x14], eax
mov eax, dword [esp + 0xc0]
mov dword [edi + 0x18], eax
mov eax, dword [esp + 0xc4]
mov dword [edi + 0x1c], eax
mov eax, dword [esp + 0xc8]
mov dword [edi + 0x20], eax
mov eax, dword [esp + 0xcc]
mov dword [edi + 0x24], eax
mov eax, dword [esp + 0xd0]
mov dword [edi + 0x28], eax
mov eax, dword [esp + 0xd4]
mov dword [edi + 0x2c], eax
mov eax, dword [esi]
mov edi, ebx
add edi, 4
and edi, 0xfffffffc
mov dword [ebx], eax
mov eax, dword [esi + 0x10fc]
mov dword [ebx + 0x10fc], eax
mov eax, ebx
sub eax, edi
sub esi, eax
add eax, 0x1100
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
movzx edi, word [esp + 0x6c]
movzx eax, byte [esp + 0x6f]
lea esi, [ebp + 0x12a4]
mov word [ebp + 0x168c], di
mov edi, dword [esp + 0x64]
mov byte [ebp + 0x12a2], al
mov dword [ebp + 0x1688], edi
mov edi, dword [esp + 0x50]
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], ebx
mov dword [esp], ebp
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0x38]
mov dword [esp + 8], edi
lea edi, [esp + 0x108]
mov dword [esp + 4], edi
call fcn.00b64f60
cmp dword [esp + 0x24], 6
mov eax, dword [esp + 0x30]
sete dl
xor eax, 1
and dl, al
mov edi, edx
je 0xb626bb
mov eax, dword [esp + 0x3598]
mov eax, dword [eax]
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0x3598]
mov eax, dword [eax + 4]
mov dword [esp + 0xdc], eax
mov eax, dword [esp + 0x3598]
mov eax, dword [eax + 8]
mov dword [esp + 0xe0], eax
mov eax, dword [esp + 0x3598]
mov eax, dword [eax + 0xc]
mov dword [esp + 0xe4], eax
mov eax, dword [esp + 0x3598]
mov eax, dword [eax + 0x10]
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0x3598]
mov eax, dword [eax + 0x14]
mov dword [esp + 0xec], eax
mov eax, dword [esp + 0x3598]
mov eax, dword [eax + 0x18]
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0x3598]
mov eax, dword [eax + 0x1c]
mov dword [esp + 0xf4], eax
mov eax, dword [esp + 0x3598]
mov eax, dword [eax + 0x20]
mov dword [esp + 0xf8], eax
mov eax, dword [esp + 0x3598]
mov eax, dword [eax + 0x24]
mov dword [esp + 0xfc], eax
mov eax, dword [esp + 0x3598]
mov eax, dword [eax + 0x28]
mov dword [esp + 0x100], eax
mov eax, dword [esp + 0x3598]
mov eax, dword [eax + 0x2c]
mov dword [esp + 0x104], eax
mov eax, dword [esp + 0x359c]
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 0x1674]
mov dword [esp], ebp
mov dword [esp + 8], eax
mov eax, dword [esp + 0x3598]
mov dword [esp + 4], eax
call fcn.00b5cf60
mov eax, dword [ebp + 0x11e8]
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], eax
movsx eax, byte [ebp + 0x129e]
mov dword [esp + 8], eax
movsx eax, byte [ebp + 0x129d]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x3598]
mov dword [esp], eax
call fcn.00b5d4d0
mov eax, dword [esp + 0x3598]
mov ebx, dword [esp + 0x3598]
bsr eax, dword [eax + 0x1c]
mov edx, dword [ebx + 0x14]
xor eax, 0x1f
lea ebx, [eax + edx - 0x20]
cmp dword [esp + 0x35a0], ebx
jge 0xb6274d
mov eax, edi
test al, al
jne 0xb62d52
mov eax, dword [esp + 0x24]
or eax, dword [esp + 0x35a4]
jne 0xb628a3
cmp ebx, dword [esp + 0x35a0]
jle 0xb62b81
mov eax, dword [esp + 0x30]
xor eax, 1
and eax, 1
cmp dword [esp + 0x24], 1
jle 0xb62c5d
test al, al
je 0xb62c5d
fld dword [0xe0d3ec]
fld dword [esp + 0x3bc]
fmul st(1)
fucom st(1)
fnstsw ax
sahf
ja 0xb627a2
fstp st(0)
jmp 0xb627a4
fstp st(1)
fstp dword [esp + 0x3bc]
mov byte [ebp + 0x129e], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x4c], 0xffffffff
mov eax, dword [ebp + 0x11e4]
xor edi, edi
mov dword [esp + 0x20], eax
cmp edi, dword [esp + 0x20]
jge 0xb62852
mov eax, dword [ebp + 0x11ec]
mov edx, edi
add edi, 1
imul edx, eax
add eax, edx
cmp edx, eax
jge 0xb62ec3
lea edx, [ebp + edx + 0x12a4]
lea ebx, [ebp + eax + 0x12a4]
xor ecx, ecx
lea esi, [esi]
movsx eax, byte [edx]
add edx, 1
mov esi, eax
sar esi, 0x1f
xor eax, esi
sub eax, esi
add ecx, eax
cmp ebx, edx
jne 0xb62810
mov eax, dword [esp + 0x24]
test eax, eax
je 0xb62889
cmp dword [esp + edi*4 + 0x94], ecx
jle 0xb62841
mov eax, dword [esp + edi*4 + 0x84]
test eax, eax
je 0xb62889
cmp edi, dword [esp + 0x20]
mov dword [esp + edi*4 + 0x84], 1
jl 0xb627e4
mov eax, dword [esp + 0x68]
test eax, eax
jne 0xb629f7
movzx eax, word [esp + 0x28]
cmp ax, 0x3fff
jg 0xb62cab
add eax, eax
mov word [esp + 0x28], ax
mov eax, dword [esp + 0x20]
test eax, eax
jg 0xb62a49
lea esi, [esp + 0x78]
jmp 0xb62ab8
movzx eax, word [esp + 0x28]
mov dword [esp + edi*4 + 0x94], ecx
mov word [esp + edi*2 + 0x6e], ax
jmp 0xb627de
mov ebx, dword [esp + 0x48]
cmp dword [esp + 0x24], 6
je 0xb62b5e
cmp ebx, dword [esp + 0x35a0]
jg 0xb6276b
mov eax, dword [esp + 0x35a0]
sub eax, 5
cmp ebx, eax
jge 0xb62b81
movsx eax, word [esp + 0x28]
mov edi, dword [esp + 0x40]
cmp dword [esp + 0x2c], edi
mov dword [esp + 0x58], eax
je 0xb629d5
mov eax, dword [esp + 0x3598]
mov edi, dword [esp + 0x3598]
mov edx, dword [eax]
mov eax, dword [eax + 4]
mov ecx, dword [edi + 0x1c]
mov dword [esp + 0xdc], eax
mov eax, dword [esp + 0x3598]
mov dword [esp + 0xf4], ecx
mov ecx, dword [edi + 0x20]
mov dword [esp + 0xd8], edx
mov eax, dword [eax + 8]
mov dword [esp + 0xf8], ecx
mov ecx, dword [edi + 0x24]
mov dword [esp + 0xe0], eax
mov eax, dword [esp + 0x3598]
mov dword [esp + 0xfc], ecx
mov ecx, dword [edi + 0x28]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x100], ecx
mov ecx, dword [edi + 0x2c]
mov dword [esp + 0xe4], eax
mov eax, dword [esp + 0x3598]
mov dword [esp + 0x104], ecx
mov eax, dword [eax + 0x10]
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0x3598]
mov eax, dword [eax + 0x14]
mov dword [esp + 0xec], eax
mov eax, dword [esp + 0x3598]
mov eax, dword [eax + 0x18]
cmp eax, 0x4fb
mov dword [esp + 0xf0], eax
ja 0xb62fba
lea ecx, [esp + 0x3f4]
mov dword [esp + 8], eax
mov dword [esp + 4], edx
mov dword [esp], ecx
call sub.msvcrt.dll_memcpy
lea eax, [esp + 0x2470]
mov ecx, 0x440
mov esi, dword [esp + 0x34]
mov edi, eax
movzx eax, byte [ebp + 0x1c00]
rep movsd dword es:[edi], dword [esi]
mov byte [esp + 0x6e], al
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x40], eax
mov edx, dword [esp + 0x3c]
test edx, edx
je 0xb62cfc
mov eax, dword [ebp + 0x11e4]
mov dword [esp + 0x44], ebx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x30], eax
mov edi, dword [esp + 0x58]
mov ebx, dword [esp + 0x44]
mov ecx, dword [esp + 0x5c]
mov eax, dword [esp + 0x35a0]
mov edx, dword [esp + 0x48]
sub ecx, edi
sub eax, ebx
imul eax, ecx
sub edx, ebx
mov ebx, edx
cdq
idiv ebx
add eax, edi
movsx edx, ax
mov word [esp + 0x28], ax
mov eax, ecx
sar eax, 2
lea ecx, [eax + edi]
cmp edx, ecx
jle 0xb62c8f
add eax, edi
mov word [esp + 0x28], ax
mov eax, dword [esp + 0x20]
test eax, eax
jle 0xb62880
mov dword [esp + 0x3590], ebp
movzx ebp, word [esp + 0x28]
lea esi, [esp + 0x78]
mov edi, dword [esp + 0x20]
xor ebx, ebx
mov eax, dword [esp + ebx*4 + 0x88]
movsx ecx, bp
test eax, eax
je 0xb62a72
movsx ecx, word [esp + ebx*2 + 0x70]
mov edx, dword [esp + ebx*4 + 0x3e0]
movzx eax, dx
sar edx, 0x10
imul eax, ecx
imul edx, ecx
sar eax, 0x10
add eax, edx
mov edx, 0x7fffff00
cmp eax, 0x7fffff
jg 0xb62aa7
cmp eax, 0xff800000
mov edx, 0x80000000
jl 0xb62aa7
shl eax, 8
mov edx, eax
mov dword [esi + ebx*4], edx
add ebx, 1
cmp ebx, edi
jne 0xb62a5f
mov ebp, dword [esp + 0x3590]
movzx eax, byte [esp + 0x3f0]
mov edi, dword [esp + 0x38]
mov byte [ebp + 0x1c00], al
mov eax, dword [esp + 0x20]
mov dword [esp + 4], esi
mov dword [esp], edi
mov dword [esp + 0x10], eax
xor eax, eax
cmp dword [esp + 0x359c], 2
sete al
mov dword [esp + 0xc], eax
lea eax, [ebp + 0x1c00]
mov dword [esp + 8], eax
call fcn.00b68640
mov eax, dword [ebp + 0x11e4]
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.00b68890
mov edx, dword [ebp + 0x11e4]
mov dword [esp + 0x2c], eax
xor eax, eax
fld dword [0xe0d3f4]
test edx, edx
jle 0xb62b38
fild dword [esi + eax*4]
fmul st(1)
fstp dword [esp + eax*4 + 0x108]
add eax, 1
cmp eax, edx
jne 0xb62b21
fstp st(0)
jmp 0xb62b3a
fstp st(0)
mov eax, dword [esp + 0x2c]
mov edi, dword [esp + 0x40]
add dword [esp + 0x24], 1
cmp eax, edi
jne 0xb624bd
cmp dword [esp + 0x24], 6
mov ebx, dword [esp + 0x44]
jne 0xb628ae
mov eax, dword [esp + 0x30]
test eax, eax
je 0xb62b81
mov edi, dword [esp + 0x40]
cmp dword [esp + 0x2c], edi
je 0xb62eca
cmp ebx, dword [esp + 0x35a0]
jg 0xb62eca
mov eax, dword [ebp + 0x11e0]
mov edx, dword [ebp + 0x11e8]
mov ebx, dword [ebp + 0x1248]
lea eax, [eax + eax*4]
add eax, dword [ebp + 0x11f0]
shl eax, 2
mov dword [esp + 8], eax
lea eax, [ebp + edx*4 + 0x1c0c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x60]
mov dword [esp], eax
call sub.msvcrt.dll_memmove
test ebx, ebx
jne 0xb62ce2
mov eax, dword [ebp + 0x11e4]
mov edi, dword [esp + 0x3598]
mov dword [ebp + 0x1238], 0
mov eax, dword [esp + eax*4 + 0x1e8]
mov dword [ebp + 0x11c0], eax
movzx eax, byte [ebp + 0x129d]
mov byte [ebp + 0x11bd], al
mov eax, dword [esp + 0x3598]
mov edx, dword [edi + 0x14]
mov edi, dword [esp + 0x3594]
bsr eax, dword [eax + 0x1c]
xor eax, 0x1f
lea eax, [eax + edx - 0x19]
sar eax, 3
mov dword [edi], eax
add esp, 0x357c
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x50]
lea esi, [ebp + 0x12a4]
mov dword [esp], ebp
xor edi, edi
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 8], eax
lea eax, [esp + 0x108]
mov dword [esp + 4], eax
call fcn.00b64f60
jmp 0xb626bb
movsx edi, word [esp + 0x28]
test al, al
mov dword [esp + 0x5c], edi
mov edi, dword [esp + 0x30]
mov dword [esp + 0x68], edi
je 0xb62fd6
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x48], ebx
mov dword [esp + 0x3c], 1
mov dword [esp + 0x4c], eax
jmp 0xb627d2
mov edi, dword [esp + 0x5c]
mov ecx, edi
sub ecx, eax
cmp edx, ecx
jge 0xb62a3d
sub edi, eax
mov word [esp + 0x28], di
jmp 0xb62a3d
mov eax, 0x7fff
mov word [esp + 0x28], ax
jmp 0xb62a3d
mov eax, dword [esp + 0x28]
add eax, dword [ebp + 0x11f0]
shl eax, 2
mov dword [esp + 8], eax
lea eax, [ebp + edi*4 + 0x1c0c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x60]
mov dword [esp], eax
call sub.msvcrt.dll_memmove
mov eax, dword [esp + 0x3594]
mov dword [eax], 0
add esp, 0x357c
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, ebx
sub eax, dword [esp + 0x35a0]
shl eax, 7
cdq
idiv dword [ebp + 0x11e8]
add eax, 0x800
mov dword [esp], eax
call fcn.00b602d0
movzx edx, ax
sar eax, 0x10
mov dword [esp + 0x44], ebx
imul edx, dword [esp + 0x58]
imul ax, word [esp + 0x28]
mov dword [esp + 0x30], 1
sar edx, 0x10
add eax, edx
mov word [esp + 0x28], ax
mov eax, dword [ebp + 0x11e4]
mov dword [esp + 0x20], eax
jmp 0xb62a3d
mov edi, dword [esp + 0x3598]
mov eax, dword [esp + 0xd8]
movzx edx, byte [esp + 0x3f0]
mov dword [edi], eax
mov eax, dword [esp + 0xdc]
mov dword [edi + 4], eax
mov eax, dword [esp + 0xe0]
mov dword [edi + 8], eax
mov eax, dword [esp + 0xe4]
mov dword [edi + 0xc], eax
mov eax, dword [esp + 0xe8]
mov dword [edi + 0x10], eax
mov eax, dword [esp + 0xec]
mov dword [edi + 0x14], eax
mov eax, dword [esp + 0xf0]
mov dword [edi + 0x18], eax
mov eax, dword [esp + 0xf4]
mov dword [edi + 0x1c], eax
mov eax, dword [esp + 0xf8]
mov dword [edi + 0x20], eax
mov eax, dword [esp + 0xfc]
mov dword [edi + 0x24], eax
mov eax, dword [esp + 0x100]
mov dword [edi + 0x28], eax
mov eax, dword [esp + 0x104]
mov dword [edi + 0x2c], eax
mov ecx, dword [ebp + 0x11e4]
mov eax, ebp
mov byte [ebp + 0x1c00], dl
test ecx, ecx
lea ebx, [ebp + ecx]
jle 0xb62dfc
mov byte [eax + 0x1280], 4
add eax, 1
cmp ebx, eax
jne 0xb62dee
cmp dword [esp + 0x359c], 2
je 0xb62e0c
mov byte [ebp + 0x1280], dl
movzx eax, word [esp + 0x6c]
mov edx, dword [ebp + 0x11e8]
test edx, edx
mov word [ebp + 0x168c], ax
mov eax, dword [esp + 0x64]
mov dword [ebp + 0x1688], eax
jle 0xb62e3f
lea edx, [ebp + edx + 0x12a4]
mov eax, esi
mov byte [eax], 0
add eax, 1
cmp edx, eax
jne 0xb62e35
mov eax, dword [esp + 0x359c]
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 0x1674]
mov dword [esp], ebp
mov dword [esp + 8], eax
mov eax, dword [esp + 0x3598]
mov dword [esp + 4], eax
call fcn.00b5cf60
mov eax, dword [ebp + 0x11e8]
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], eax
movsx eax, byte [ebp + 0x129e]
mov dword [esp + 8], eax
movsx eax, byte [ebp + 0x129d]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x3598]
mov dword [esp], eax
call fcn.00b5d4d0
mov eax, dword [esp + 0x3598]
mov edi, dword [esp + 0x3598]
bsr eax, dword [eax + 0x1c]
mov edx, dword [edi + 0x14]
xor eax, 0x1f
lea ebx, [eax + edx - 0x20]
jmp 0xb6274d
xor ecx, ecx
jmp 0xb62825
mov eax, dword [esp + 0x3598]
mov edx, dword [esp + 0xd8]
mov edi, dword [esp + 0x3598]
mov ecx, dword [esp + 0xf4]
mov dword [eax], edx
mov eax, dword [esp + 0xdc]
mov dword [edi + 0x1c], ecx
mov ecx, dword [esp + 0xf8]
mov dword [edi + 4], eax
mov eax, dword [esp + 0xe0]
mov dword [edi + 0x20], ecx
mov ecx, dword [esp + 0xfc]
mov dword [edi + 8], eax
mov eax, dword [esp + 0xe4]
mov dword [edi + 0x24], ecx
mov ecx, dword [esp + 0x100]
mov dword [edi + 0xc], eax
mov eax, dword [esp + 0xe8]
mov dword [edi + 0x28], ecx
mov ecx, dword [esp + 0x104]
mov dword [edi + 0x10], eax
mov eax, dword [esp + 0xec]
mov dword [edi + 0x2c], ecx
mov dword [edi + 0x14], eax
mov eax, dword [esp + 0xf0]
cmp eax, 0x4fb
mov dword [edi + 0x18], eax
ja 0xb62ff9
lea ecx, [esp + 0x3f4]
mov dword [esp + 8], eax
mov dword [esp], edx
lea esi, [esp + 0x2470]
mov dword [esp + 4], ecx
call sub.msvcrt.dll_memcpy
mov eax, dword [esp + 0x2470]
mov edi, dword [esp + 0x34]
mov dword [edi], eax
mov eax, dword [esp + 0x356c]
mov dword [edi + 0x10fc], eax
mov eax, edi
add edi, 4
and edi, 0xfffffffc
sub eax, edi
sub esi, eax
add eax, 0x1100
shr eax, 2
mov ecx, eax
rep movsd dword es:[edi], dword [esi]
movzx eax, byte [esp + 0x6e]
mov byte [ebp + 0x1c00], al
jmp 0xb62b81
mov dword [esp + 8], 0x119
mov dword [esp + 4], str.silk_float_encode_frame_FLP.c
mov dword [esp], str.assertion_failed:_psRangeEnc__offs___1275
call fcn.00b371e0
mov eax, dword [ebp + 0x11e4]
mov dword [esp + 0x48], ebx
mov dword [esp + 0x3c], 1
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x4c], eax
jmp 0xb62852
mov dword [esp + 8], 0xfb
mov dword [esp + 4], str.silk_float_encode_frame_FLP.c
mov dword [esp], str.assertion_failed:_sRangeEnc_copy2.offs___1275
call fcn.00b371e0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
push ebp
push edi
push esi
push ebx
sub esp, 0x71c
mov ebx, dword [esp + 0x730]
mov eax, dword [ebx + 0x11f4]
mov ebp, dword [ebx + 0x11e8]
mov ecx, dword [ebx + 0x11f0]
add ebp, eax
lea edx, [ebp + ecx]
mov edi, edx
mov dword [esp + 0x30], edx
mov edx, dword [ebx + 0x11c4]
cmp edi, edx
jl 0xb63353
mov edi, dword [esp + 0x73c]
shl ecx, 2
lea ebp, [esp + 0x110]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 1
mov dword [esp], ebp
sub edi, ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x34], edi
sub ecx, edx
lea edi, [edi + ecx*4]
mov dword [esp + 4], edi
call fcn.00b716d0
mov ecx, dword [ebx + 0x11f4]
mov esi, dword [ebx + 0x11c4]
lea eax, [ecx*4]
mov dword [esp + 0x3c], ecx
lea edx, [ebp + eax]
add edi, eax
lea eax, [ecx + ecx]
mov dword [esp + 4], edi
sub esi, eax
mov dword [esp], edx
mov dword [esp + 0x38], edx
shl esi, 2
mov dword [esp + 8], esi
add edi, esi
call sub.msvcrt.dll_memcpy
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
mov dword [esp + 8], 2
mov dword [esp + 4], edi
add esi, edx
mov dword [esp + 0xc], ecx
mov dword [esp], esi
lea esi, [esp + 0xcc]
call fcn.00b716d0
mov eax, dword [ebx + 0x1228]
add eax, 1
mov dword [esp + 0xc], eax
mov eax, dword [ebx + 0x11c4]
mov dword [esp], esi
mov dword [esp + 4], ebp
mov dword [esp + 8], eax
call fcn.00b65550
fld dword [esp + 0xcc]
mov eax, dword [ebx + 0x1228]
mov dword [esp + 4], esi
lea esi, [esp + 0x8c]
fld dword [0xe0d45c]
mov dword [esp + 8], eax
mov dword [esp], esi
fmul st(1)
fld1
fadd st(1), st(0)
fstp dword [esp + 0x38]
faddp st(1)
fstp dword [esp + 0xcc]
call fcn.00b66b90
fld dword [esp + 0xcc]
fld dword [esp + 0x38]
fxch st(2)
fucom st(2)
fnstsw ax
sahf
jbe 0xb63250
fstp st(2)
fxch st(1)
fdivp st(1)
mov eax, dword [esp + 0x734]
fstp dword [eax + 0x2c0]
mov eax, dword [ebx + 0x1228]
mov dword [esp + 4], esi
lea esi, [esp + 0x4c]
mov dword [esp + 8], eax
mov dword [esp], esi
call fcn.00b65710
mov dword [esp + 8], 0x3f7d70a4
mov eax, dword [ebx + 0x1228]
mov dword [esp], esi
mov dword [esp + 4], eax
call fcn.00b655b0
mov eax, dword [ebx + 0x1228]
mov dword [esp + 4], esi
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x738]
mov dword [esp], eax
call fcn.00b63700
cmp byte [ebx + 0x129d], 0
je 0xb631f8
mov edx, dword [ebx + 0x1238]
test edx, edx
je 0xb63260
mov eax, dword [esp + 0x734]
mov dword [eax + 0xe4], 0
mov dword [eax + 0xe8], 0
mov dword [eax + 0xec], 0
mov dword [eax + 0xf0], 0
xor eax, eax
mov word [ebx + 0x129a], ax
mov byte [ebx + 0x129c], 0
mov dword [ebx + 0x274c], 0
add esp, 0x71c
pop ebx
pop esi
pop edi
pop ebp
ret
fstp st(0)
fxch st(1)
jmp 0xb63175
fild dword [ebx + 0x1228]
movzx eax, byte [ebx + 0x11bd]
fmul dword [0xe0d460]
sar al, 1
cbw
mov word [esp + 0x30], ax
mov eax, dword [esp + 0x740]
fsubr dword [0xe0d464]
fild dword [ebx + 0x11b4]
mov dword [esp + 0x2c], eax
mov eax, dword [ebx + 0x11e4]
fld dword [0xe0d468]
fmul st(1), st(0)
fxch st(1)
mov dword [esp + 0x28], eax
mov eax, dword [ebx + 0x1224]
mov dword [esp + 0x24], eax
mov eax, dword [ebx + 0x11e0]
fmul dword [0xe0d46c]
mov dword [esp + 0x20], eax
fsubp st(2)
fild word [esp + 0x30]
fmul dword [0xe0d470]
fsubp st(2)
fild dword [ebx + 0x1268]
fmulp st(1)
fmul dword [0xe0d474]
fsubp st(1)
fstp dword [esp + 0x1c]
fild dword [ebx + 0x122c]
fmul dword [0xe0d478]
fstp dword [esp + 0x18]
mov eax, dword [ebx + 0x11c0]
mov dword [esp + 0x14], eax
lea eax, [ebx + 0x274c]
mov dword [esp + 0x10], eax
lea eax, [ebx + 0x129c]
mov dword [esp + 0xc], eax
lea eax, [ebx + 0x129a]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x734]
add eax, 0xe4
mov dword [esp + 4], eax
mov eax, dword [esp + 0x738]
mov dword [esp], eax
call fcn.00b65810
test eax, eax
sete al
add eax, 1
mov byte [ebx + 0x129d], al
add esp, 0x71c
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 8], 0x3b
mov dword [esp + 4], 0xe0d3f8
mov dword [esp], str.assertion_failed:_buf_len___psEnc__sCmn.pitch_LPC_win_length
call fcn.00b371e0
nop
push ebp
push edi
push esi
push ebx
sub esp, 0x85c
mov ebx, dword [esp + 0x870]
mov esi, dword [esp + 0x874]
mov eax, dword [ebx + 0x11e4]
test eax, eax
jle 0xb63592
fld1
xor edx, edx
fld dword [esi + edx*4]
fdivr st(1)
fstp dword [esp + edx*4 + 0x40]
add edx, 1
cmp edx, eax
jne 0xb6339a
fstp st(0)
cmp byte [ebx + 0x129d], 2
je 0xb6359f
mov edx, dword [ebx + 0x1220]
mov ebp, dword [esp + 0x87c]
xor edi, edi
mov dword [esp + 0x874], esi
mov esi, ebx
lea eax, [edx*4]
add edx, dword [ebx + 0x11ec]
sub ebp, eax
lea eax, [esp + 0x250]
mov ebx, ebp
mov dword [esp + 0x34], eax
mov ebp, eax
mov dword [esp + 0xc], edx
fld dword [esp + edi*4 + 0x40]
mov dword [esp + 4], ebx
add edi, 1
mov dword [esp], ebp
fstp dword [esp + 8]
call fcn.00b66b10
mov eax, dword [esi + 0x11ec]
mov edx, dword [esi + 0x1220]
lea ebx, [ebx + eax*4]
add edx, eax
mov eax, dword [esi + 0x11e4]
lea ebp, [ebp + edx*4]
cmp eax, edi
jg 0xb633ef
mov ebx, esi
mov esi, dword [esp + 0x874]
lea eax, [eax + eax*4]
lea edx, [esi + 0x90]
mov dword [esp + 4], 0
shl eax, 2
mov dword [esp], edx
mov dword [esp + 8], eax
call sub.msvcrt.dll_memset
mov dword [esi + 0x2c4], 0
mov dword [ebx + 0x1230], 0
mov eax, dword [ebx + 0x1238]
fld dword [0xe0d518]
test eax, eax
jne 0xb634ba
fstp st(0)
fld dword [0xe0d51c]
fdivr dword [esi + 0x2c4]
fstp qword [esp + 8]
fld dword [0xe0d520]
fstp qword [esp]
call sub.msvcrt.dll_pow
fstp dword [esp + 0x3c]
fld dword [esp + 0x3c]
fld dword [0xe0d524]
fdivp st(1)
fld dword [0xe0d528]
fmul dword [esi + 0x2bc]
fadd dword [0xe0d52c]
fdivp st(1)
mov eax, dword [esp + 0x34]
fstp dword [esp + 0xc]
mov dword [esp], ebx
lea ebp, [esi + 0x10]
lea edi, [ebx + 0x1194]
mov dword [esp + 8], eax
lea eax, [esp + 0x50]
mov dword [esp + 4], eax
mov dword [esp + 0x38], eax
call fcn.00b717e0
mov eax, dword [esp + 0x38]
mov dword [esp + 0xc], edi
mov dword [esp + 4], ebp
mov dword [esp], ebx
mov dword [esp + 8], eax
call fcn.00b64ee0
mov eax, dword [ebx + 0x1220]
mov dword [esp + 0x18], eax
mov eax, dword [ebx + 0x11e4]
mov dword [esp + 0x14], eax
mov eax, dword [ebx + 0x11ec]
mov dword [esp + 0xc], esi
add esi, 0x2c8
mov dword [esp + 8], ebp
mov dword [esp], esi
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 4], eax
call fcn.00b64b90
mov eax, dword [esp + 0x50]
mov dword [ebx + 0x1194], eax
mov eax, dword [esp + 0x54]
mov dword [ebx + 0x1198], eax
mov eax, dword [esp + 0x58]
mov dword [ebx + 0x119c], eax
mov eax, dword [esp + 0x5c]
mov dword [ebx + 0x11a0], eax
mov eax, dword [esp + 0x60]
mov dword [ebx + 0x11a4], eax
mov eax, dword [esp + 0x64]
mov dword [ebx + 0x11a8], eax
mov eax, dword [esp + 0x68]
mov dword [ebx + 0x11ac], eax
mov eax, dword [esp + 0x6c]
mov dword [ebx + 0x11b0], eax
add esp, 0x85c
pop ebx
pop esi
pop edi
pop ebp
ret
cmp byte [ebx + 0x129d], 2
jne 0xb636d0
mov ecx, dword [esi + 0xe4]
mov edx, dword [ebx + 0x11f0]
sub edx, dword [ebx + 0x1220]
add ecx, 1
cmp ecx, edx
jge 0xb636e0
mov dword [esp + 0x14], eax
mov eax, dword [ebx + 0x11ec]
lea edx, [esp + 0x70]
lea ebp, [esi + 0xe4]
lea edi, [esi + 0x90]
mov dword [esp + 4], edx
mov dword [esp + 0x38], edx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x878]
mov dword [esp + 0xc], ebp
mov dword [esp + 8], eax
lea eax, [esp + 0xc0]
mov dword [esp], eax
mov dword [esp + 0x34], eax
call fcn.00b71ac0
mov ecx, dword [ebx + 0x13e4]
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x24], ecx
mov ecx, dword [ebx + 0x11e4]
mov dword [esp + 0x20], ecx
mov ecx, dword [ebx + 0x11ec]
mov dword [esp + 0x14], eax
lea eax, [esi + 0x2c4]
mov dword [esp + 0x18], edx
mov dword [esp], edi
mov dword [esp + 0x10], eax
lea eax, [ebx + 0x1230]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0xc], eax
lea eax, [ebx + 0x12a0]
mov dword [esp + 8], eax
lea eax, [ebx + 0x1284]
mov dword [esp + 4], eax
call fcn.00b653a0
mov eax, dword [esp + 0x880]
mov dword [esp + 4], esi
mov dword [esp], ebx
mov dword [esp + 8], eax
call fcn.00b63ae0
mov eax, dword [ebx + 0x1220]
mov ecx, dword [esp + 0x87c]
mov dword [esp + 0x1c], eax
mov edx, dword [ebx + 0x11e4]
shl eax, 2
sub ecx, eax
lea eax, [esp + 0x250]
mov dword [esp + 0x18], edx
mov edx, dword [ebx + 0x11ec]
mov dword [esp + 0xc], ebp
mov dword [esp + 8], edi
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 0x14], edx
lea edx, [esp + 0x40]
mov dword [esp + 0x34], eax
mov dword [esp + 0x10], edx
call fcn.00b639d0
jmp 0xb63466
lea ecx, [esp + 0x250]
mov dword [esp + 0x34], ecx
jmp 0xb63432
mov dword [esp + 8], 0x3e
mov dword [esp + 4], 0xe0d47c
mov dword [esp], str.assertion_failed:_psEnc__sCmn.ltp_mem_length___psEnc__sCmn.predictLPCOrder___psEncCtrl__pitchL__0____LTP_ORDER___2
call fcn.00b371e0
nop
nop
nop
nop