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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0xac
mov eax, dword [esp + 0xc0]
mov esi, dword [esp + 0xc0]
mov edi, dword [esp + 0xf4]
mov ebp, dword [esp + 0xf0]
mov eax, dword [eax + 0x10f0]
sub eax, dword [esp + 0xe4]
lea eax, [esi + eax*4 + 0x504]
mov dword [esp + 0x44], eax
mov eax, dword [esi + 0x10ec]
mov esi, dword [esp + 0xd4]
mov dword [esp + 0x1c], eax
sub eax, dword [esp + 0xe4]
lea eax, [esi + eax*4 + 8]
mov esi, edi
sar esi, 6
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0xc0]
add eax, 0xf3c
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x100]
test eax, eax
jle 0xb694eb
mov ebx, dword [esp + 0x108]
mov ecx, dword [esp + 0x104]
sar edi, 0x15
mov edx, dword [esp + 0x104]
mov eax, dword [esp + 0xc0]
movsx esi, si
sar ebx, 1
sar ecx, 1
mov dword [esp + 0x64], ebx
mov ebx, dword [esp + 0xc0]
and edx, 1
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x104]
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x104]
add ebx, 0x1080
mov eax, dword [eax + 0x10f4]
lea ecx, [ebx + ecx*4 - 4]
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0xe0]
lea ecx, [ecx + edx*2 - 2]
mov edx, ebp
sar edx, 0x10
mov dword [esp + 0x58], ecx
mov dword [esp + 0x48], edx
mov ecx, dword [esp + 0xe8]
mov edx, dword [esp + 0xf8]
sar ecx, 0x10
sar edx, 1
mov dword [esp + 0x78], ecx
lea ecx, [edx - 0x200]
mov dword [esp + 0x80], ecx
mov ecx, 0x200
sub ecx, edx
mov dword [esp + 0x88], ecx
mov ecx, dword [esp + 0xfc]
lea edx, [ecx - 0x3b0]
movsx ecx, word [esp + 0xf8]
mov dword [esp + 0x9c], edx
neg edx
movsx edx, dx
imul edx, ecx
mov dword [esp + 0x98], edx
movsx edx, word [esp + 0xfc]
imul edx, ecx
mov dword [esp + 0x8c], edx
mov edx, dword [esp + 0xfc]
add edx, 0x3b0
mov dword [esp + 0x94], edx
movsx edx, dx
imul edx, ecx
mov dword [esp + 0x90], edx
mov edx, edi
mov edi, dword [esp + 0xd0]
add edx, 1
sar edx, 1
mov dword [esp + 0x4c], edx
mov dword [esp + 0x3c], edi
mov edi, dword [esp + 0xc8]
mov dword [esp + 0x74], ecx
mov dword [esp + 0x70], esi
mov dword [esp + 0x2c], edi
mov edi, dword [esp + 0xcc]
mov dword [esp + 0x28], edi
add edi, dword [esp + 0x100]
mov dword [esp + 0x5c], edi
mov edi, dword [esp + 0x104]
lea edx, [edi*4 - 0xc]
movsx edi, word [esp + 0xe8]
and edx, 0xfffffff8
lea ebx, [ebx + edx + 0xc]
mov dword [esp + 0x7c], edi
mov dword [esp + 0x1c], ebx
movsx ebx, word [esp + 0xec]
mov dword [esp + 0x68], ebx
movsx ebx, bp
mov dword [esp + 0x6c], ebx
imul eax, eax, 0xbb38435
mov edi, dword [esp + 0xc0]
mov ecx, dword [esp + 0x20]
mov ebx, dword [esp + 0xd8]
add eax, 0x3619636b
mov dword [edi + 0x10f4], eax
mov eax, dword [esp + 0xd8]
mov esi, dword [ecx]
movsx ebp, word [ebx + 2]
movsx edi, word [eax]
mov eax, dword [esp + 0x64]
movzx edx, si
sar esi, 0x10
imul edx, edi
imul esi, edi
mov edi, dword [ecx - 4]
sar edx, 0x10
add esi, edx
add eax, esi
movzx esi, di
sar edi, 0x10
imul esi, ebp
imul edi, ebp
sar esi, 0x10
add edi, esi
lea ebx, [edi + eax]
mov eax, ecx
mov edi, dword [ecx - 8]
mov ecx, dword [esp + 0xd8]
movzx esi, di
sar edi, 0x10
movsx ebp, word [ecx + 4]
imul esi, ebp
imul edi, ebp
sar esi, 0x10
add edi, esi
lea ecx, [edi + ebx]
mov ebx, dword [esp + 0xd8]
mov edi, dword [eax - 0xc]
movsx ebp, word [ebx + 6]
movzx esi, di
sar edi, 0x10
imul esi, ebp
imul edi, ebp
movsx ebp, word [ebx + 8]
sar esi, 0x10
add edi, esi
lea edx, [edi + ecx]
mov edi, dword [eax - 0x10]
mov ecx, eax
movzx esi, di
sar edi, 0x10
imul esi, ebp
imul edi, ebp
movsx ebp, word [ebx + 0xa]
sar esi, 0x10
add edi, esi
lea eax, [edi + edx]
mov edi, dword [ecx - 0x14]
movzx esi, di
sar edi, 0x10
imul esi, ebp
imul edi, ebp
sar esi, 0x10
add edi, esi
lea ebx, [edi + eax]
mov eax, ecx
mov edi, dword [ecx - 0x18]
mov ecx, dword [esp + 0xd8]
movzx esi, di
sar edi, 0x10
movsx ebp, word [ecx + 0xc]
imul esi, ebp
imul edi, ebp
sar esi, 0x10
add edi, esi
mov esi, dword [eax - 0x1c]
lea ecx, [edi + ebx]
mov edi, dword [esp + 0xd8]
movzx ebx, si
sar esi, 0x10
movsx edi, word [edi + 0xe]
imul ebx, edi
imul esi, edi
mov edi, eax
sar ebx, 0x10
add esi, ebx
mov ebx, dword [eax - 0x20]
mov eax, dword [esp + 0xd8]
lea edx, [esi + ecx]
movsx esi, word [eax + 0x10]
movzx ecx, bx
sar ebx, 0x10
imul ecx, esi
imul ebx, esi
sar ecx, 0x10
add ebx, ecx
mov ecx, dword [edi - 0x24]
mov edi, dword [esp + 0xd8]
lea eax, [ebx + edx]
movsx ebx, word [edi + 0x12]
movzx edx, cx
sar ecx, 0x10
imul edx, ebx
imul ecx, ebx
sar edx, 0x10
add ecx, edx
add eax, ecx
mov dword [esp + 0x24], eax
cmp dword [esp + 0x108], 0x10
jne 0xb6912e
mov eax, dword [esp + 0x20]
movsx esi, word [edi + 0x14]
mov edx, dword [esp + 0x24]
movsx edi, word [edi + 0x16]
mov ebx, dword [eax - 0x28]
movzx ecx, bx
sar ebx, 0x10
imul ecx, esi
imul ebx, esi
mov esi, dword [eax - 0x2c]
sar ecx, 0x10
add ebx, ecx
mov ecx, eax
add edx, ebx
movzx ebx, si
sar esi, 0x10
imul ebx, edi
imul esi, edi
mov edi, dword [esp + 0xd8]
sar ebx, 0x10
add esi, ebx
movsx edi, word [edi + 0x18]
lea eax, [esi + edx]
mov esi, dword [ecx - 0x30]
mov edx, ecx
movzx ebx, si
sar esi, 0x10
imul ebx, edi
imul esi, edi
sar ebx, 0x10
add esi, ebx
lea ecx, [esi + eax]
mov eax, edx
mov esi, dword [edx - 0x34]
mov edx, dword [esp + 0xd8]
movzx ebx, si
sar esi, 0x10
movsx edi, word [edx + 0x1a]
imul ebx, edi
imul esi, edi
mov edi, eax
sar ebx, 0x10
add esi, ebx
mov ebx, dword [eax - 0x38]
mov eax, dword [esp + 0xd8]
lea edx, [esi + ecx]
movsx esi, word [eax + 0x1c]
movzx ecx, bx
sar ebx, 0x10
imul ecx, esi
imul ebx, esi
mov esi, dword [esp + 0xd8]
sar ecx, 0x10
add ebx, ecx
mov ecx, dword [edi - 0x3c]
lea eax, [ebx + edx]
movsx ebx, word [esi + 0x1e]
movzx edx, cx
sar ecx, 0x10
imul edx, ebx
imul ecx, ebx
sar edx, 0x10
add edx, ecx
add eax, edx
mov dword [esp + 0x24], eax
cmp dword [esp + 0xc4], 2
mov dword [esp + 0x30], 0
je 0xb695e0
mov edi, dword [esp + 0x60]
test edi, edi
jne 0xb69771
mov eax, dword [esp + 0xc0]
mov ecx, dword [eax + 0x10e4]
mov esi, dword [eax + 0x1080]
mov dword [eax + 0x1080], ecx
mov eax, dword [esp + 0xe0]
movsx ebx, word [eax]
movzx eax, cx
sar ecx, 0x10
imul eax, ebx
imul ecx, ebx
sar eax, 0x10
add ecx, eax
cmp dword [esp + 0x104], 2
mov eax, dword [esp + 0x50]
lea edx, [ecx + eax]
jle 0xb691f7
mov eax, dword [esp + 0xc0]
lea ebx, [eax + 0x1084]
mov eax, dword [esp + 0xe0]
lea edi, [eax + 2]
mov eax, edx
nop
movsx edx, word [edi]
movzx ebp, si
mov ecx, dword [ebx]
mov dword [ebx], esi
sar esi, 0x10
add ebx, 8
add edi, 4
imul ebp, edx
imul esi, edx
sar ebp, 0x10
lea edx, [ebp + esi]
movsx ebp, word [edi - 2]
mov esi, dword [ebx - 4]
mov dword [ebx - 4], ecx
add edx, eax
movzx eax, cx
sar ecx, 0x10
imul eax, ebp
imul ecx, ebp
sar eax, 0x10
add eax, ecx
add eax, edx
cmp ebx, dword [esp + 0x1c]
jne 0xb691b0
mov edx, eax
mov eax, dword [esp + 0x54]
mov dword [eax], esi
mov eax, dword [esp + 0x58]
movsx ebx, word [eax]
movzx eax, si
sar esi, 0x10
imul eax, ebx
imul esi, ebx
sar eax, 0x10
add esi, eax
mov eax, dword [esp + 0xc0]
add edx, esi
mov esi, dword [esp + 0x68]
mov eax, dword [eax + 0x10e0]
mov ebx, esi
mov ecx, eax
movzx eax, ax
sar ecx, 0x10
imul ebx, eax
imul esi, ecx
sar ebx, 0x10
add ebx, esi
mov esi, dword [esp + 0xe4]
lea edi, [ebx + edx*2]
mov ebx, dword [esp + 0xc0]
mov dword [esp + 0x34], edi
mov edi, dword [esp + 0x6c]
mov edx, dword [ebx + 0x10f0]
mov edx, dword [ebx + edx*4 + 0x4fc]
movzx ebx, dx
sar edx, 0x10
imul ebx, edi
imul edx, edi
sar ebx, 0x10
add edx, ebx
mov ebx, dword [esp + 0x48]
imul ecx, ebx
imul eax, ebx
add ecx, edx
sar eax, 0x10
add eax, ecx
test esi, esi
mov dword [esp + 0x38], eax
jg 0xb6929b
cmp dword [esp + 0xc4], 2
je 0xb6978d
mov eax, dword [esp + 0x24]
mov ebx, dword [esp + 0xe4]
shl eax, 2
sub eax, dword [esp + 0x34]
sub eax, dword [esp + 0x38]
test ebx, ebx
jle 0xb696d0
mov edi, dword [esp + 0x44]
mov esi, dword [esp + 0x7c]
mov ecx, dword [edi - 8]
add ecx, dword [edi]
add edi, 4
mov edx, dword [edi - 8]
mov dword [esp + 0x44], edi
movzx ebx, cx
sar ecx, 0x10
imul ebx, esi
imul ecx, esi
mov esi, dword [esp + 0x78]
sar ebx, 0x10
add ecx, ebx
mov ebx, edx
movzx edx, dx
sar ebx, 0x10
imul ebx, esi
imul edx, esi
add ecx, ebx
sar edx, 0x10
add ecx, edx
mov edx, dword [esp + 0x30]
add ecx, ecx
sub edx, ecx
lea eax, [edx + eax*2]
sar eax, 2
add eax, 1
sar eax, 1
mov ecx, dword [esp + 0x2c]
mov edi, dword [ecx]
mov edx, edi
mov dword [esp + 0x40], edi
sub edx, eax
mov eax, dword [esp + 0xc0]
mov ecx, dword [eax + 0x10f4]
test ecx, ecx
js 0xb696c0
cmp edx, 0xffff8400
jge 0xb69580
mov edx, 0xffff8400
mov eax, edx
sub eax, dword [esp + 0xfc]
cmp dword [esp + 0xf8], 0x800
jle 0xb695a0
mov ebx, dword [esp + 0x80]
cmp eax, ebx
jle 0xb696e0
mov ecx, eax
sub ecx, ebx
sar ecx, 0xa
test ecx, ecx
jle 0xb695ad
mov eax, dword [esp + 0xfc]
shl ecx, 0xa
lea esi, [eax + ecx - 0x50]
mov eax, dword [esp + 0x74]
mov ecx, edx
lea ebx, [esi + 0x400]
movsx ebp, si
imul ebp, eax
movsx edi, bx
sub ecx, ebx
imul edi, eax
mov eax, edx
sub eax, esi
cwde
movsx ecx, cx
imul eax, eax
imul ecx, ecx
add eax, ebp
add ecx, edi
cmp eax, ecx
jg 0xb693b9
mov ebx, esi
mov eax, ebx
mov ecx, dword [esp + 0x28]
shl ebx, 4
sar eax, 9
add eax, 1
sar eax, 1
mov byte [ecx], al
mov eax, dword [esp + 0xc0]
mov eax, dword [eax + 0x10f4]
test eax, eax
js 0xb696b0
mov eax, dword [esp + 0x30]
mov edi, dword [esp + 0x70]
lea ecx, [ebx + eax*2]
mov eax, dword [esp + 0x24]
shl eax, 4
add eax, ecx
movzx edx, ax
imul edx, edi
mov ebx, edx
mov edx, eax
sar edx, 0x10
sar ebx, 0x10
imul edx, edi
add edx, ebx
mov ebx, dword [esp + 0x4c]
imul ebx, eax
add edx, ebx
mov ebx, 0x7fff
sar edx, 7
add edx, 1
sar edx, 1
cmp edx, 0x7fff
jg 0xb69437
cmp edx, 0xffff8000
mov ebx, 0xffff8000
jl 0xb69437
mov ebx, edx
add dword [esp + 0x20], 4
mov esi, dword [esp + 0x3c]
add ecx, ecx
mov ebp, dword [esp + 0x2c]
mov edi, dword [esp + 0x20]
mov word [esi], bx
mov dword [edi], eax
mov ebx, dword [ebp]
mov edi, dword [esp + 0xc0]
mov edx, ebx
mov dword [esp + 0x24], ebx
mov ebx, dword [edi + 0x10f0]
shl edx, 4
sub eax, edx
mov edx, dword [esp + 0x34]
mov dword [edi + 0x10e4], eax
shl edx, 2
sub eax, edx
mov edx, dword [esp + 0x38]
mov dword [edi + 0x10e0], eax
shl edx, 2
sub eax, edx
mov dword [edi + ebx*4 + 0x500], eax
mov eax, dword [edi + 0x10ec]
mov ebx, dword [esp + 0xd4]
mov dword [ebx + eax*4], ecx
add dword [edi + 0x10f0], 1
mov ebx, esi
add dword [edi + 0x10ec], 1
mov edi, dword [esp + 0x28]
add ebx, 2
mov ecx, dword [esp + 0xc0]
mov dword [esp + 0x3c], ebx
mov ebx, ebp
add ebx, 4
add edi, 1
movsx eax, byte [edi - 1]
add eax, dword [ecx + 0x10f4]
cmp dword [esp + 0x5c], edi
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x28], edi
mov dword [ecx + 0x10f4], eax
jne 0xb68ee2
mov eax, dword [esp + 0xc0]
mov esi, dword [esp + 0x100]
mov edi, dword [esp + 0xc0]
lea edx, [eax + 0xf00]
lea eax, [eax + esi*4 + 0xf00]
mov ecx, dword [eax]
mov dword [edi + 0xf00], ecx
mov ecx, dword [eax + 4]
mov dword [edx + 4], ecx
mov ecx, dword [eax + 8]
mov dword [edx + 8], ecx
mov ecx, dword [eax + 0xc]
mov dword [edx + 0xc], ecx
mov ecx, dword [eax + 0x10]
mov dword [edx + 0x10], ecx
mov ecx, dword [eax + 0x14]
mov dword [edx + 0x14], ecx
mov ecx, dword [eax + 0x18]
mov dword [edx + 0x18], ecx
mov ecx, dword [eax + 0x1c]
mov dword [edx + 0x1c], ecx
mov ecx, dword [eax + 0x20]
mov dword [edx + 0x20], ecx
mov ecx, dword [eax + 0x24]
mov dword [edx + 0x24], ecx
mov ecx, dword [eax + 0x28]
mov dword [edx + 0x28], ecx
mov ecx, dword [eax + 0x2c]
mov dword [edx + 0x2c], ecx
mov ecx, dword [eax + 0x30]
mov dword [edx + 0x30], ecx
mov ecx, dword [eax + 0x34]
mov dword [edx + 0x34], ecx
mov ecx, dword [eax + 0x38]
mov dword [edx + 0x38], ecx
mov eax, dword [eax + 0x3c]
mov dword [edx + 0x3c], eax
add esp, 0xac
pop ebx
pop esi
pop edi
pop ebp
ret
cmp edx, 0x7800
jle 0xb69341
mov edx, 0x7800
jmp 0xb69341
mov ecx, eax
sar ecx, 0xa
test ecx, ecx
jg 0xb69379
test ecx, ecx
jne 0xb69700
mov ebx, dword [esp + 0x94]
mov edi, dword [esp + 0x90]
mov ebp, dword [esp + 0x8c]
mov esi, dword [esp + 0xfc]
sub edx, ebx
mov ecx, edx
jmp 0xb693a5
mov ebx, dword [esp + 0x84]
mov edx, dword [esp + 0xdc]
mov eax, dword [ebx]
movsx ecx, word [edx]
movzx edx, ax
sar eax, 0x10
imul edx, ecx
imul eax, ecx
sar edx, 0x10
lea edi, [edx + eax + 2]
mov eax, dword [esp + 0xdc]
mov edx, ebx
mov ebx, dword [ebx - 4]
movsx esi, word [eax + 2]
movzx eax, bx
sar ebx, 0x10
imul eax, esi
imul ebx, esi
mov esi, dword [edx - 8]
sar eax, 0x10
add ebx, eax
mov eax, edx
lea ecx, [ebx + edi]
mov edi, dword [esp + 0xdc]
movzx ebx, si
sar esi, 0x10
movsx edi, word [edi + 4]
imul ebx, edi
imul esi, edi
mov edi, eax
sar ebx, 0x10
add esi, ebx
mov ebx, dword [eax - 0xc]
mov eax, dword [esp + 0xdc]
lea edx, [esi + ecx]
movsx esi, word [eax + 6]
movzx ecx, bx
sar ebx, 0x10
imul ecx, esi
imul ebx, esi
mov esi, dword [esp + 0xdc]
sar ecx, 0x10
add ebx, ecx
mov ecx, dword [edi - 0x10]
lea eax, [ebx + edx]
movsx ebx, word [esi + 8]
movzx edx, cx
sar ecx, 0x10
imul edx, ebx
imul ecx, ebx
mov ebx, edi
add ebx, 4
sar edx, 0x10
mov dword [esp + 0x84], ebx
add ecx, edx
add eax, ecx
mov dword [esp + 0x30], eax
jmp 0xb69144
neg ebx
jmp 0xb693e1
neg edx
jmp 0xb69330
sar eax, 1
add eax, 1
sar eax, 1
jmp 0xb6930d
cmp eax, dword [esp + 0x88]
jge 0xb69740
mov esi, dword [esp + 0x80]
lea ecx, [eax + esi]
sar ecx, 0xa
jmp 0xb69371
cmp ecx, 0xffffffff
je 0xb6974a
mov eax, dword [esp + 0xfc]
shl ecx, 0xa
lea esi, [eax + ecx + 0x50]
mov eax, dword [esp + 0x74]
lea ebx, [esi + 0x400]
mov ebp, esi
neg ebp
mov edi, ebx
movsx ebp, bp
neg edi
movsx edi, di
imul ebp, eax
imul edi, eax
mov eax, edx
sub edx, ebx
sub eax, esi
mov ecx, edx
jmp 0xb693a5
mov ecx, eax
sar ecx, 0x1f
jmp 0xb695ad
mov esi, dword [esp + 0x9c]
mov ecx, eax
mov eax, edx
mov edi, dword [esp + 0x8c]
mov ebp, dword [esp + 0x98]
mov ebx, dword [esp + 0xfc]
sub eax, esi
jmp 0xb693a5
mov dword [esp + 8], 0xfa
mov dword [esp + 4], str.silk_NSQ.c
mov dword [esp], 0xe0ddf4
call fcn.00b371e0
mov dword [esp + 8], 0x102
mov dword [esp + 4], str.silk_NSQ.c
mov dword [esp], str.assertion_failed:_lag___0__signalType___TYPE_VOICED
call fcn.00b371e0
lea esi, [esi]