Function at 0x101ee4b6
Capabilities:
Encrypt data using speck

Disassembly:
push ebp
mov ebp, esp
mov edx, dword [ebp + 8]
sub esp, 0x54
mov ecx, dword [edx + 0x34]
push ebx
mov ebx, dword [ebp + 0x10]
push esi
push edi
push 0x24
pop edi
cmp ecx, 0x1c
je 0x101ee51b
cmp ecx, 0x1b
je 0x101ee51b
cmp ecx, 3
je 0x101ee51b
cmp ecx, edi
je 0x101ee51b
cmp ecx, 0x25
je 0x101ee51b
cmp ecx, 0x26
je 0x101ee51b
cmp ecx, 0x27
je 0x101ee51b
cmp ecx, 0x37
je 0x101ee51b
cmp ecx, 0x36
je 0x101ee51b
cmp ecx, 0x14
je 0x101ee51b
cmp ecx, 0x15
je 0x101ee51b
cmp ecx, 0x16
je 0x101ee51b
cmp ecx, 0xa
je 0x101ee51b
xor esi, esi
xor eax, eax
inc eax
mov dword [ebp - 0x10], esi
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x24], eax
jmp 0x101ee543
xor eax, eax
xor esi, esi
inc eax
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], eax
cmp ecx, edi
je 0x101ee55d
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x24], esi
cmp ecx, 0x26
je 0x101ee55d
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x24], esi
cmp ecx, 0x37
je 0x101ee55d
cmp ecx, 0x28
je 0x101ee55d
cmp ecx, 0x2a
je 0x101ee55d
cmp ecx, 0x39
je 0x101ee55d
mov dword [ebp - 0x34], esi
cmp ecx, 0xc5
jne 0x101ee560
mov dword [ebp - 0x34], eax
mov ecx, dword [edx + 0x3c]
mov eax, 0x346
mov dword [ebp - 0x2c], ecx
test ebx, ebx
xorps xmm0, xmm0
mov dword [ebp - 8], 0x10000
mov dword [ebp - 0xc], esi
mov edi, 0xff
lea ecx, [eax + 0x3a]
movlpd qword [ebp - 0x54], xmm0
cmovne eax, ecx
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x30], eax
mov eax, dword [ecx]
cdq
mov dword [ebp - 0x28], eax
mov eax, dword [ecx + 4]
mov dword [ebp + 0xc], edx
cdq
mov dword [ebp - 0x1c], eax
mov eax, dword [ecx + 8]
neg eax
mov dword [ebp - 0x20], edx
cdq
mov dword [ebp - 0x38], eax
mov eax, dword [ecx + 0xc]
neg eax
mov dword [ebp - 0x18], edx
cdq
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], edx
test ebx, ebx
jne 0x101ee5d4
mov dword [ebp - 8], 0x12a15
mov ebx, esi
mov dword [ebp - 0xc], esi
mov dword [ebp - 4], 0x100000
jmp 0x101ee652
push esi
mov ebx, 0xe0
push ebx
push dword [ebp + 0xc]
push dword [ebp - 0x28]
call fcn.10230a00
push esi
push edi
push edx
push eax
call fcn.10230b30
push esi
push ebx
push dword [ebp - 0x20]
mov dword [ebp - 0x28], eax
push dword [ebp - 0x1c]
mov dword [ebp + 0xc], edx
call fcn.10230a00
push esi
push edi
push edx
push eax
call fcn.10230b30
push esi
push ebx
push dword [ebp - 0x18]
mov dword [ebp - 0x1c], eax
push dword [ebp - 0x38]
mov dword [ebp - 0x20], edx
call fcn.10230a00
push esi
push edi
push edx
push eax
call fcn.10230b30
push esi
push ebx
push dword [ebp - 0x3c]
mov dword [ebp - 0x38], eax
push dword [ebp - 0x40]
mov dword [ebp - 0x18], edx
call fcn.10230a00
push esi
push edi
push edx
push eax
call fcn.10230b30
mov ebx, dword [ebp - 0x50]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x3c], edx
mov dword [ebp - 4], eax
push dword [ebp - 0xc]
mov eax, dword [ebp + 0x18]
push dword [ebp - 8]
cdq
push edx
push eax
call fcn.10230a00
push dword [ebp + 0xc]
mov ecx, edx
push dword [ebp - 0x28]
shrd eax, ecx, 0x10
mov dword [ebp - 8], eax
mov eax, dword [ebp + 0x18]
imul dword [ebp + 0x1c]
sar ecx, 0x10
mov esi, edx
mov dword [ebp - 0xc], ecx
mov edi, eax
push esi
push edi
call fcn.10230a00
push dword [ebp - 0x20]
mov eax, edx
push dword [ebp - 0x1c]
mov dword [ebp - 0x28], eax
push esi
sar eax, 0x1f
push edi
mov dword [ebp - 0x44], eax
call fcn.10230a00
push dword [ebp - 0x18]
mov eax, edx
push dword [ebp - 0x38]
mov dword [ebp - 0x20], eax
push esi
sar eax, 0x1f
push edi
mov dword [ebp - 0x1c], eax
call fcn.10230a00
push dword [ebp - 0x3c]
mov eax, edx
push dword [ebp - 0x40]
mov dword [ebp - 0x38], eax
push esi
sar eax, 0x1f
push edi
mov dword [ebp - 0x48], eax
call fcn.10230a00
mov esi, dword [ebp + 8]
mov edi, edx
mov ecx, dword [ebp - 8]
mov eax, edi
sar eax, 0x1f
mov dword [ebp - 0x40], eax
mov eax, dword [ebp + 0x14]
shl eax, 8
cdq
sub dword [ebp - 4], eax
mov eax, 0x4000400
mov dword [esi + 0x60e8], eax
mov dword [esi + 0x60ec], eax
sbb ebx, edx
mov dword [esi + 0x60f0], eax
mov dword [esi + 0x60f4], eax
mov eax, dword [ebp - 0xc]
shld eax, ecx, 0xd
mov dword [ebp - 0x3c], edi
shl ecx, 0xd
push eax
push ecx
mov dword [ebp + 0x1c], ebx
call fcn.101ef687
pop ecx
pop ecx
mov ebx, 0x10001
mov word [ebp + 0x1a], ax
push ebx
movzx eax, ax
cdq
push ebx
push edx
push eax
call fcn.10230a00
mov ecx, dword [ebp - 0x28]
mov dword [esi + 0x60b8], eax
mov eax, dword [ebp - 0x44]
shld eax, ecx, 0xd
mov dword [esi + 0x60bc], edx
shl ecx, 0xd
push eax
push ecx
call fcn.101ef687
pop ecx
pop ecx
mov word [ebp + 0xe], ax
push ebx
movzx eax, ax
cdq
push ebx
push edx
push eax
call fcn.10230a00
mov ecx, dword [ebp - 0x20]
mov dword [esi + 0x60c0], eax
mov eax, dword [ebp - 0x1c]
shld eax, ecx, 0xd
mov dword [esi + 0x60c4], edx
shl ecx, 0xd
push eax
push ecx
call fcn.101ef687
pop ecx
pop ecx
mov bx, ax
mov ecx, 0x10001
push ecx
movzx eax, bx
cdq
push ecx
push edx
push eax
call fcn.10230a00
mov dword [esi + 0x60c8], eax
mov ecx, edi
mov eax, dword [ebp - 0x40]
shld eax, ecx, 0xd
mov dword [esi + 0x60cc], edx
shl ecx, 0xd
push eax
push ecx
call fcn.101ef687
pop ecx
pop ecx
mov di, ax
mov ecx, 0x10001
push ecx
movzx eax, di
cdq
push ecx
push edx
push eax
call fcn.10230a00
mov ecx, dword [ebp - 0x38]
mov dword [esi + 0x60d0], eax
mov eax, dword [ebp - 0x48]
shld eax, ecx, 0xd
mov dword [esi + 0x60d4], edx
shl ecx, 0xd
push eax
push ecx
call fcn.101ef687
pop ecx
pop ecx
mov si, ax
mov ecx, 0x10001
push ecx
movzx eax, si
cdq
push ecx
push edx
push eax
call fcn.10230a00
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x60d8], eax
mov eax, dword [ebp + 0x1c]
mov dword [ecx + 0x60dc], edx
mov ecx, dword [ebp - 4]
shld eax, ecx, 3
shl ecx, 3
push eax
push ecx
call fcn.101ef687
pop ecx
pop ecx
mov ecx, 0x10001
movzx eax, ax
push ecx
cdq
push ecx
push edx
push eax
call fcn.10230a00
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x60e0], eax
mov ax, word [ebp + 0x1a]
cwde
mov dword [ecx + 0x6088], eax
mov eax, dword [ebp + 0x1c]
mov dword [ecx + 0x60e4], edx
mov ecx, dword [ebp - 4]
shld eax, ecx, 9
shl ecx, 9
push eax
push ecx
call fcn.101ef687
pop ecx
pop ecx
mov ecx, dword [ebp + 8]
cwde
mov dword [ecx + 0x6084], eax
mov ax, word [ebp + 0xe]
cwde
mov dword [ecx + 0x608c], eax
movsx eax, di
mov dword [ecx + 0x6090], eax
movsx eax, si
mov esi, ecx
mov ecx, dword [ebp - 0xc]
mov dword [esi + 0x6094], eax
movsx eax, bx
xor ebx, ebx
mov dword [esi + 0x6098], eax
cmp ecx, ebx
jl 0x101ee8ca
mov eax, dword [ebp - 8]
jg 0x101ee8c0
xor edi, edi
inc edi
cmp eax, edi
jbe 0x101ee8cd
jmp 0x101ee8c3
xor edi, edi
inc edi
mov edx, eax
mov dword [ebp + 0x18], ecx
jmp 0x101ee8d2
xor edi, edi
inc edi
mov edx, edi
mov dword [ebp + 0x18], ebx
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x44]
push dword [ebp + 0x18]
shld ecx, eax, 0x10
push edx
shl eax, 0x10
add eax, 0x8000
adc ecx, ebx
push ecx
push eax
call fcn.10230b30
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x18], eax
mov dword [ebp + 0x14], edx
cmp ecx, ebx
jl 0x101ee90e
mov eax, dword [ebp - 8]
jg 0x101ee907
cmp eax, edi
jbe 0x101ee90e
mov edx, eax
mov dword [ebp + 0x18], ecx
jmp 0x101ee913
mov edx, edi
mov dword [ebp + 0x18], ebx
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x1c]
push dword [ebp + 0x18]
shld ecx, eax, 0x10
push edx
shl eax, 0x10
add eax, 0x8000
adc ecx, ebx
push ecx
push eax
call fcn.10230b30
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x20], edx
cmp ecx, ebx
jl 0x101ee94f
mov eax, dword [ebp - 8]
jg 0x101ee948
cmp eax, edi
jbe 0x101ee94f
mov edx, eax
mov dword [ebp + 0x18], ecx
jmp 0x101ee954
mov edx, edi
mov dword [ebp + 0x18], ebx
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x48]
push dword [ebp + 0x18]
shld ecx, eax, 0x10
push edx
shl eax, 0x10
add eax, 0x8000
adc ecx, ebx
push ecx
push eax
call fcn.10230b30
mov ecx, dword [ebp - 0xc]
mov dword [ebp + 0xc], eax
mov dword [ebp + 0x18], edx
cmp ecx, ebx
jl 0x101ee990
mov eax, dword [ebp - 8]
jg 0x101ee989
cmp eax, edi
jbe 0x101ee990
mov edx, eax
mov dword [ebp - 0x48], ecx
jmp 0x101ee995
mov edx, edi
mov dword [ebp - 0x48], ebx
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x40]
push dword [ebp - 0x48]
shld ecx, eax, 0x10
push edx
shl eax, 0x10
add eax, 0x8000
adc ecx, ebx
push ecx
push eax
call fcn.10230b30
mov dword [ebp - 0x50], eax
lea eax, [esi + 0xd58]
push eax
mov dword [ebp - 0x4c], edx
mov dword [ebp - 0x28], eax
call fcn.101d06dd
pop ecx
mov ecx, dword [ebp - 0x2c]
cmp ecx, 0x18
jg 0x101eee8b
je 0x101ef027
cmp ecx, edi
je 0x101eedf3
cmp ecx, 4
je 0x101eeef6
cmp ecx, 8
je 0x101eeca4
cmp ecx, 0xc
je 0x101eeb6a
lea eax, [ecx - 0xf]
cmp eax, edi
ja 0x101eeeb5
mov eax, dword [ebp - 0x10]
add ecx, 0xfffffffb
xor edx, edx
test eax, eax
push 0x3000
cmovne edx, ecx
mov dword [ebp - 0x40], edx
xor edx, edx
test eax, eax
cmovne ecx, edx
mov dword [ebp - 0x38], ecx
call fcn.101d070f
pop ecx
mov ecx, dword [ebp - 0x28]
mov edi, eax
mov dword [ebp - 0x24], edi
mov dword [ecx], edi
test edi, edi
je 0x101ef2ae
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
add edx, 0xc000
mov eax, dword [ebp - 4]
mov esi, dword [ebp + 0x1c]
adc ecx, ebx
shld ecx, edx, 9
push 0x12
shl edx, 9
neg eax
mov dword [ebp - 0x44], 0x800
adc esi, ebx
neg esi
sub eax, edx
pop edx
sbb esi, ecx
mov dword [ebp - 4], eax
sub edx, dword [ebp - 0x2c]
lea ecx, [edi + 0x2000]
push 2
mov dword [ebp - 0x3c], edx
mov dword [ebp + 0x1c], ecx
pop edi
mov ecx, eax
mov eax, esi
add ecx, 0x8000
adc eax, ebx
shrd ecx, eax, 0x10
test ecx, 0xffffff00
je 0x101eeaa2
not ecx
sar ecx, 0x1f
mov al, cl
mov dword [ebp - 0x48], ecx
mov ecx, dword [ebp - 0x40]
shr al, 3
movzx edx, al
mov ax, dx
shl ax, cl
mov ecx, dword [ebp + 0x1c]
mov word [ecx - 0x2000], ax
mov cl, byte [ebp - 0x3c]
mov eax, dword [ebp - 0x48]
shr al, cl
mov ecx, dword [ebp + 0x1c]
movzx eax, al
shl ax, 5
mov word [ecx - 0x1000], ax
mov ecx, dword [ebp - 0x38]
mov eax, dword [ebp - 4]
shl dx, cl
mov ecx, dword [ebp + 0x1c]
add eax, dword [ebp - 8]
mov dword [ebp - 4], eax
adc esi, dword [ebp - 0xc]
mov word [ecx], dx
add ecx, edi
sub dword [ebp - 0x44], 1
mov dword [ebp + 0x1c], ecx
jne 0x101eea85
mov eax, dword [ebp - 0x24]
cmp dword [ebp - 0x34], ebx
je 0x101eeb12
ror word [eax + ebx*2], 8
inc ebx
cmp ebx, 0x1800
jl 0x101eeb04
cmp dword [ebp + 0x10], 0
mov esi, 0x68c
mov ebx, dword [ebp + 8]
lea ecx, [esi + 0x74]
cmovne esi, ecx
add eax, esi
push eax
push dword [ebp + 0x14]
lea eax, [ebx + 0x2160]
push dword [ebp - 0x18]
push edi
push eax
call fcn.101ef624
mov eax, dword [ebp - 0x24]
add eax, 0x1000
add eax, esi
push eax
push dword [ebp + 0x18]
lea eax, [ebx + 0x3560]
push dword [ebp + 0xc]
push edi
push eax
call fcn.101ef624
mov eax, dword [ebp - 0x24]
add esp, 0x28
add eax, 0x2000
add esi, eax
jmp 0x101ef3c9
mov eax, dword [ebp - 0x10]
mov ecx, eax
xor eax, edi
shl ecx, 3
shl eax, 3
push 0x3000
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x10], eax
call fcn.101d070f
pop ecx
mov ecx, dword [ebp - 0x28]
mov edi, eax
mov dword [ebp - 0x2c], edi
mov dword [ecx], edi
test edi, edi
je 0x101ef2ae
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
add edx, 0xc000
mov eax, dword [ebp - 4]
mov esi, dword [ebp + 0x1c]
adc ecx, ebx
shld ecx, edx, 9
push 2
shl edx, 9
neg eax
mov dword [ebp - 0x48], 0x800
adc esi, ebx
neg esi
sub eax, edx
mov dword [ebp - 4], eax
sbb esi, ecx
add edi, 0x2000
mov dword [ebp + 0x1c], edi
pop edi
mov ecx, eax
mov eax, esi
add ecx, 0x8000
adc eax, ebx
shrd ecx, eax, 0x10
test ecx, 0xffffff00
je 0x101eebf2
not ecx
sar ecx, 0x1f
shr cl, 4
movzx edx, cl
mov ecx, dword [ebp - 0x44]
mov ax, dx
shl ax, cl
mov ecx, dword [ebp + 0x1c]
mov word [ecx - 0x2000], ax
mov eax, edx
shl eax, 4
mov word [ecx - 0x1000], ax
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 4]
shl dx, cl
mov ecx, dword [ebp + 0x1c]
add eax, dword [ebp - 8]
mov dword [ebp - 4], eax
adc esi, dword [ebp - 0xc]
mov word [ecx], dx
add ecx, edi
sub dword [ebp - 0x48], 1
mov dword [ebp + 0x1c], ecx
jne 0x101eebd5
mov eax, dword [ebp - 0x2c]
cmp dword [ebp - 0x34], ebx
je 0x101eec50
ror word [eax + ebx*2], 8
inc ebx
cmp ebx, 0x1800
jl 0x101eec42
cmp dword [ebp + 0x10], 0
mov esi, 0x68c
mov ebx, dword [ebp + 8]
lea ecx, [esi + 0x74]
cmovne esi, ecx
add eax, esi
push eax
push dword [ebp + 0x14]
lea eax, [ebx + 0x2160]
push dword [ebp - 0x18]
push edi
push eax
call fcn.101ef624
mov eax, dword [ebp - 0x2c]
add eax, 0x1000
add eax, esi
push eax
push dword [ebp + 0x18]
lea eax, [ebx + 0x3560]
push dword [ebp + 0xc]
push edi
push eax
call fcn.101ef624
mov edx, dword [ebp - 0x2c]
add edx, 0x2000
jmp 0x101ef3c4
mov eax, dword [ebp - 0x10]
mov ecx, eax
neg ecx
push 6
sbb ecx, ecx
xor edx, edx
and ecx, 5
mov dword [ebp - 0x40], ecx
mov ecx, eax
xor ecx, edi
add ecx, 2
test eax, eax
mov dword [ebp - 0x3c], ecx
pop ecx
cmovne ecx, edx
push 0x1800
mov dword [ebp - 0x38], ecx
call fcn.101d070f
pop ecx
mov ecx, dword [ebp - 0x28]
mov esi, eax
mov dword [ebp - 0x44], esi
mov dword [ecx], esi
test esi, esi
je 0x101ef2ae
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
add edx, 0xc000
mov eax, dword [ebp - 4]
mov edi, dword [ebp + 0x1c]
adc ecx, ebx
shld ecx, edx, 9
mov dword [ebp - 0x48], 0x7da
shl edx, 9
neg eax
adc edi, ebx
neg edi
sub eax, edx
mov dword [ebp - 4], eax
sbb edi, ecx
lea ecx, [esi + 0x10]
mov dword [ebp + 0x1c], ecx
mov ecx, eax
mov eax, edi
add ecx, 0x8000
adc eax, ebx
shrd ecx, eax, 0x10
test ecx, 0xffffff00
je 0x101eed39
not ecx
sar ecx, 0x1f
movzx esi, cl
xor edx, edx
push 0x24
pop ecx
push 0x55
lea eax, [esi + 0x12]
div ecx
mov ecx, dword [ebp - 0x40]
mov dl, al
shl dl, cl
mov ecx, dword [ebp + 0x1c]
mov byte [ecx], dl
xor edx, edx
mov ecx, dword [ebp - 0x3c]
shl al, cl
mov ecx, dword [ebp + 0x1c]
mov byte [ecx + 0x800], al
lea eax, [esi + 0x2b]
pop ecx
div ecx
mov edx, dword [ebp + 0x1c]
mov ecx, dword [ebp - 0x38]
shl al, cl
mov byte [edx + 0x1015], al
mov eax, dword [ebp - 4]
add eax, dword [ebp - 8]
mov dword [ebp - 4], eax
adc edi, dword [ebp - 0xc]
inc edx
sub dword [ebp - 0x48], 1
mov dword [ebp + 0x1c], edx
jne 0x101eed1c
mov eax, dword [ebp - 0x30]
xor edi, edi
add eax, dword [ebp - 0x44]
inc edi
mov ebx, dword [ebp + 8]
push eax
push dword [ebp + 0x14]
push dword [ebp - 0x18]
lea eax, [ebx + 0x2160]
push edi
push eax
call fcn.101ef624
cmp dword [ebp + 0x10], 0
mov eax, 0xb46
lea ecx, [eax + 0x3a]
cmovne eax, ecx
add eax, dword [ebp - 0x44]
push eax
push dword [ebp + 0x18]
lea eax, [ebx + 0x3560]
push dword [ebp + 0xc]
push edi
push eax
call fcn.101ef624
add esp, 0x28
mov dword [ebp + 8], 0x1380
cmp dword [ebp + 0x10], 0
mov esi, 0x1346
cmovne esi, dword [ebp + 8]
add esi, dword [ebp - 0x44]
jmp 0x101ef3c9
push 0x800
call fcn.101d070f
mov dword [ebp + 0x14], eax
pop ecx
mov ecx, dword [ebp - 0x28]
mov dword [ecx], eax
test eax, eax
je 0x101ef2ae
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
add edx, 0xc000
mov edi, dword [ebp - 4]
mov esi, dword [ebp + 0x1c]
adc ecx, ebx
shld ecx, edx, 9
mov dword [ebp + 0x10], ebx
shl edx, 9
neg edi
adc esi, ebx
neg esi
sub edi, edx
mov edx, eax
sbb esi, ecx
mov ecx, edi
mov eax, esi
add ecx, 0x8000
adc eax, ebx
shrd ecx, eax, 0x10
test ecx, 0xffffff00
je 0x101eee55
not ecx
sar ecx, 0x1f
mov eax, dword [ebp + 0x10]
shr cl, 7
add edi, dword [ebp - 8]
adc esi, dword [ebp - 0xc]
mov byte [edx + eax + 0x6e], cl
inc eax
mov dword [ebp + 0x10], eax
cmp eax, 0x792
jl 0x101eee38
mov esi, dword [ebp - 0x30]
mov edi, dword [ebp - 0x14]
add esi, edx
mov eax, dword [ebp + 0xc]
mov edx, 0x3560
mov ecx, dword [ebp + 0x18]
mov ebx, dword [ebp + 8]
jmp 0x101ef3d4
sub ecx, 0x1e
je 0x101ef26e
dec ecx
sub ecx, 1
je 0x101ef0db
sub ecx, 0x10
je 0x101ef027
sub ecx, 0x10
je 0x101ef0db
sub ecx, 0x44
je 0x101eeef6
push dword [esi + 0x34]
call fcn.101d30d2
pop ecx
test eax, eax
je 0x101ef3fe
cmp byte [eax + 4], 2
mov ecx, dword [ebp - 0x2c]
jb 0x101eeede
mov eax, dword [eax + 8]
and eax, 0x10
or eax, ebx
je 0x101eeede
cmp ecx, 0x18
jg 0x101eeeef
push ecx
push str._ibpp_not_supported_by_yuv2rgb_n
push 0x10
push esi
call fcn.101ceb2e
add esp, 0x10
push 0xffffffffffffffea
jmp 0x101ef2b0
mov eax, dword [ebp - 0x10]
mov ecx, eax
neg ecx
push 3
sbb ecx, ecx
pop edx
and ecx, edx
mov dword [ebp - 0x40], ecx
xor ecx, ecx
test eax, eax
push 0x1800
cmovne edx, ecx
mov dword [ebp - 0x3c], edx
call fcn.101d070f
mov dword [ebp - 0x44], eax
mov dword [esi + 0xd58], eax
pop ecx
test eax, eax
je 0x101ef2ae
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
add edx, 0xc000
mov edi, dword [ebp - 4]
mov esi, dword [ebp + 0x1c]
adc ecx, ebx
shld ecx, edx, 9
mov dword [ebp - 0x48], 0x792
shl edx, 9
neg edi
adc esi, ebx
neg esi
sub edi, edx
sbb esi, ecx
add eax, 0x825
mov dword [ebp + 0x1c], eax
mov ecx, edi
mov eax, esi
add ecx, 0x8000
adc eax, ebx
shrd ecx, eax, 0x10
test ecx, 0xffffff00
je 0x101eef7e
not ecx
sar ecx, 0x1f
movzx edx, cl
mov ecx, dword [ebp - 0x40]
mov ebx, edx
shr ebx, 7
mov al, bl
shl al, cl
mov ecx, dword [ebp + 0x1c]
push 0x55
mov byte [ecx - 0x7b7], al
lea eax, [edx + 0x2b]
xor edx, edx
pop ecx
div ecx
mov edx, dword [ebp + 0x1c]
mov ecx, dword [ebp - 0x3c]
add al, al
shl bl, cl
add edi, dword [ebp - 8]
mov byte [edx], al
adc esi, dword [ebp - 0xc]
mov byte [edx + 0x849], bl
inc edx
sub dword [ebp - 0x48], 1
push 0
mov dword [ebp + 0x1c], edx
pop ebx
jne 0x101eef61
mov eax, dword [ebp - 0x30]
add eax, dword [ebp - 0x44]
mov ebx, dword [ebp + 8]
mov edi, dword [ebp - 0x14]
push eax
push dword [ebp + 0x14]
lea eax, [ebx + 0x2160]
push dword [ebp - 0x18]
push edi
push eax
call fcn.101ef624
cmp dword [ebp + 0x10], 0
mov eax, 0xb46
lea ecx, [eax + 0x3a]
cmovne eax, ecx
add eax, dword [ebp - 0x44]
push eax
push dword [ebp + 0x18]
lea eax, [ebx + 0x3560]
push dword [ebp + 0xc]
push edi
push eax
call fcn.101ef624
add esp, 0x28
mov dword [ebp + 8], 0x1380
cmp dword [ebp + 0x10], 0
mov esi, 0x1346
cmovne esi, dword [ebp + 8]
jmp 0x101eedeb
push 0x800
call fcn.101d070f
mov dword [ebp - 0x48], eax
pop ecx
mov ecx, dword [ebp - 0x28]
mov dword [ecx], eax
test eax, eax
je 0x101ef2ae
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
add edx, 0xc000
mov edi, dword [ebp - 4]
mov esi, dword [ebp + 0x1c]
adc ecx, ebx
shld ecx, edx, 9
mov dword [ebp + 0x10], ebx
shl edx, 9
neg edi
adc esi, ebx
neg esi
sub edi, edx
mov edx, eax
sbb esi, ecx
mov ecx, edi
mov eax, esi
add ecx, 0x8000
adc eax, ebx
shrd ecx, eax, 0x10
test ecx, 0xffffff00
je 0x101ef089
not ecx
sar ecx, 0x1f
mov eax, dword [ebp + 0x10]
add edi, dword [ebp - 8]
adc esi, dword [ebp - 0xc]
mov byte [eax + edx], cl
inc eax
mov dword [ebp + 0x10], eax
cmp eax, 0x800
jl 0x101ef06c
mov esi, dword [ebp - 0x30]
mov ebx, dword [ebp + 8]
add esi, edx
mov edi, dword [ebp - 0x14]
push esi
push dword [ebp + 0x14]
lea eax, [ebx + 0x2160]
push dword [ebp - 0x18]
push edi
push eax
call fcn.101ef624
push esi
push dword [ebp + 0x18]
lea eax, [ebx + 0x3560]
push dword [ebp + 0xc]
push edi
push eax
call fcn.101ef624
add esp, 0x28
jmp 0x101ef3c9
cmp dword [esi + 0x34], 0x1b
je 0x101ef0eb
cmp dword [esi + 0x34], 0x19
je 0x101ef0eb
mov edi, ebx
jmp 0x101ef0ee
push 8
pop edi
mov eax, dword [ebp - 0x10]
shl eax, 4
add eax, edi
mov dword [ebp - 0x10], eax
lea eax, [edi + 8]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x24]
shl eax, 4
add eax, edi
mov dword [ebp - 0x24], eax
mov eax, dword [esi + 0x38]
push eax
mov dword [ebp - 0x48], eax
call fcn.101d30d2
pop ecx
test eax, eax
je 0x101ef27c
cmp dword [ebp - 0x48], 0xb
je 0x101ef13d
mov eax, dword [eax + 8]
and eax, 0x80
jne 0x101ef13d
add edi, 0xfffffff8
mov dword [ebp - 0x14], ebx
and edi, 0x1f
mov dword [ebp - 0x48], edi
jmp 0x101ef143
mov eax, dword [ebp + 8]
mov dword [ebp - 0x48], eax
push 0x6000
call fcn.101d070f
mov dword [ebp - 0x30], eax
mov dword [esi + 0xd58], eax
pop ecx
test eax, eax
je 0x101ef2ae
mov esi, dword [ebp - 8]
mov edx, dword [ebp - 0xc]
add esi, 0xc000
mov eax, dword [ebp - 4]
mov edi, dword [ebp + 0x1c]
adc edx, ebx
mov ecx, dword [ebp - 0x48]
shld edx, esi, 9
push 4
shl esi, 9
neg eax
mov dword [ebp - 0x48], 0x800
adc edi, ebx
neg edi
sub eax, esi
pop esi
sbb edi, edx
mov dword [ebp - 4], eax
mov edx, 0xff
shl edx, cl
xor ecx, ecx
cmp dword [ebp - 0x14], ecx
mov dword [ebp - 0x14], esi
cmovne edx, ecx
mov ecx, dword [ebp - 0x30]
add ecx, 0x4000
mov dword [ebp - 0x44], edx
mov dword [ebp + 0x1c], ecx
mov ecx, eax
mov eax, edi
add ecx, 0x8000
adc eax, ebx
shrd ecx, eax, 0x10
test ecx, 0xffffff00
je 0x101ef1d2
not ecx
sar ecx, 0x1f
movzx edx, cl
mov ecx, dword [ebp - 0x10]
mov eax, edx
shl eax, cl
add eax, dword [ebp - 0x44]
mov ecx, dword [ebp + 0x1c]
mov dword [ecx - 0x4000], eax
mov eax, edx
mov ecx, dword [ebp - 0x40]
shl eax, cl
mov ecx, dword [ebp + 0x1c]
mov dword [ecx - 0x2000], eax
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 4]
shl edx, cl
mov ecx, dword [ebp + 0x1c]
add eax, dword [ebp - 8]
mov dword [ebp - 4], eax
adc edi, dword [ebp - 0xc]
mov dword [ecx], edx
add ecx, esi
sub dword [ebp - 0x48], 1
mov dword [ebp + 0x1c], ecx
jne 0x101ef1b5
cmp dword [ebp + 0x10], ebx
mov eax, 0xe00
mov ebx, dword [ebp + 8]
mov esi, 0xd18
mov edi, dword [ebp - 0x14]
cmovne esi, eax
mov eax, dword [ebp - 0x30]
add eax, esi
push eax
push dword [ebp + 0x14]
lea eax, [ebx + 0x2160]
push dword [ebp - 0x18]
push edi
push eax
call fcn.101ef624
mov eax, dword [ebp - 0x30]
add eax, 0x2000
add eax, esi
push eax
push dword [ebp + 0x18]
lea eax, [ebx + 0x3560]
push dword [ebp + 0xc]
push edi
push eax
call fcn.101ef624
mov edx, dword [ebp - 0x30]
jmp 0x101ef3be
mov esi, dword [esi + 0x38]
push esi
call fcn.101d30d2
pop ecx
test eax, eax
jne 0x101ef286
push 0x318
jmp 0x101ef403
cmp esi, 0xb
je 0x101ef297
mov eax, dword [eax + 8]
and eax, 0x80
jne 0x101ef297
mov edi, ebx
push 0x6000
call fcn.101d070f
mov dword [ebp - 0x2c], eax
pop ecx
mov ecx, dword [ebp - 0x28]
mov dword [ecx], eax
test eax, eax
jne 0x101ef2b6
push 0xfffffffffffffff4
pop eax
jmp 0x101ef3f9
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0xc]
add ecx, 0xc000
mov esi, dword [ebp - 4]
mov edx, dword [ebp + 0x1c]
adc eax, ebx
shld eax, ecx, 9
push 4
shl ecx, 9
neg esi
mov dword [ebp - 0x48], 0x800
adc edx, ebx
neg edx
sub esi, ecx
sbb edx, eax
xor ecx, ecx
test edi, edi
mov eax, 0xc0000000
pop edi
cmovne eax, ecx
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x2c]
add eax, 0x4000
mov dword [ebp + 0x1c], eax
mov ecx, esi
mov eax, edx
add ecx, 0x8000
adc eax, ebx
shrd ecx, eax, 0x10
test ecx, 0xffffff00
je 0x101ef31c
not ecx
sar ecx, 0x1f
mov ebx, dword [ebp + 0x1c]
movzx ecx, cl
mov eax, ecx
shl eax, 0x14
add eax, dword [ebp - 0x44]
mov dword [ebx - 0x4000], eax
mov eax, ecx
shl eax, 0xa
add esi, dword [ebp - 8]
mov dword [ebx - 0x2000], eax
mov eax, ebx
adc edx, dword [ebp - 0xc]
push 0
pop ebx
mov dword [eax], ecx
add eax, edi
sub dword [ebp - 0x48], 1
mov dword [ebp + 0x1c], eax
jne 0x101ef2ff
cmp dword [ebp - 0x34], ebx
je 0x101ef370
mov esi, dword [ebp - 0x2c]
push dword [esi + ebx*4]
call fcn.1023241c
mov dword [esi + ebx*4], eax
inc ebx
pop ecx
cmp ebx, 0x1800
jl 0x101ef35b
cmp dword [ebp + 0x10], 0
mov eax, 0xe00
mov ebx, dword [ebp + 8]
mov esi, 0xd18
cmovne esi, eax
mov eax, dword [ebp - 0x2c]
add eax, esi
push eax
push dword [ebp + 0x14]
lea eax, [ebx + 0x2160]
push dword [ebp - 0x18]
push edi
push eax
call fcn.101ef624
mov eax, dword [ebp - 0x2c]
add eax, 0x2000
add eax, esi
push eax
push dword [ebp + 0x18]
lea eax, [ebx + 0x3560]
push dword [ebp + 0xc]
push edi
push eax
call fcn.101ef624
mov edx, dword [ebp - 0x2c]
add edx, 0x4000
add esp, 0x28
add esi, edx
mov eax, dword [ebp - 0x1c]
mov edx, 0x4960
mov ecx, dword [ebp - 0x20]
push esi
push ecx
push eax
lea eax, [edx + ebx]
push edi
push eax
call fcn.101ef624
push dword [ebp - 0x4c]
lea eax, [ebx + 0xd60]
push dword [ebp - 0x50]
push edi
push eax
call fcn.101ef5c9
add esp, 0x24
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret
push 0x32a
push 0x1029a648
push str.desc
push str.Assertion__s_failed_at__s:_d_n
push ebx
push ebx
call fcn.101ceb2e
add esp, 0x18
call fcn.1009dc33
int3