Function at 0x10002750
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebp
lea ebp, [esp - 0x3c]
mov eax, dword [ebp + 0x7c]
sub esp, 0x124
add eax, 0x84
push ebx
push esi
push edi
push 0
push eax
call sub.MSVCR120.dll__setjmp3
add esp, 8
test eax, eax
jne 0x10002f7c
mov eax, dword [ebp + 0x70]
mov ecx, 0x4b
test eax, eax
cmovs eax, ecx
mov dword [ebp + 0x1c], eax
mov eax, dword [ebp + 0x58]
cmp dword [ebp + 0x50], eax
jg 0x1000279d
mov eax, dword [ebp + 0x54]
cmp eax, dword [ebp + 0x5c]
jg 0x1000279d
xor eax, eax
jmp 0x100027a2
mov eax, 1
mov esi, dword [ebp + 0x48]
mov ebx, dword [ebp + 0x78]
mov ecx, dword [ebp + 0x4c]
mov dword [ebp + 0x38], esi
test al, al
jne 0x10002919
cmp esi, 1
jl 0x100027c4
cmp ecx, 1
jl 0x100027c4
xor eax, eax
jmp 0x100027c9
mov eax, 1
mov edi, dword [ebp + 0x64]
test al, al
mov eax, dword [ebp + 0x60]
je 0x10002809
cmp eax, dword [ebp + 0x68]
jg 0x100027e1
cmp edi, dword [ebp + 0x6c]
jg 0x100027e1
xor edx, edx
jmp 0x100027e6
mov edx, 1
test dl, dl
je 0x10002809
movdqu xmm0, xmmword [ebp + 0x50]
movdqu xmmword [ebp + 0x60], xmm0
movdqa xmm0, xmmword [0x100304e0]
movdqu xmmword [ebp - 0xc8], xmm0
jmp 0x10002914
cmp esi, 1
jl 0x10002817
cmp ecx, 1
jl 0x10002817
xor edx, edx
jmp 0x1000281c
mov edx, 1
test dl, dl
je 0x1000286f
mov dword [ebp - 0x20], eax
lea ecx, [ebp + 0x50]
lea eax, [ebp - 0x20]
mov dword [ebp - 0x1c], edi
push eax
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QRect::translate_class_QPoint_const__]
lea eax, [ebp + 0x60]
push eax
lea eax, [ebp - 0xa8]
push eax
lea ecx, [ebp + 0x50]
call dword [sym.imp.Qt5Core.dll_public:_class_QRect___thiscall_QRect::operator_class_QRect_const__]
movdqu xmm0, xmmword [ebp - 0xa8]
mov ecx, dword [ebp + 0x4c]
mov esi, dword [ebp + 0x48]
movdqu xmmword [ebp + 0x60], xmm0
movdqa xmm0, xmmword [0x100304e0]
movdqu xmmword [ebp - 0xd8], xmm0
jmp 0x10002911
cmp eax, dword [ebp + 0x68]
jg 0x1000287d
cmp edi, dword [ebp + 0x6c]
jg 0x1000287d
xor edx, edx
jmp 0x10002882
mov edx, 1
test dl, dl
je 0x1000291f
mov eax, dword [ebx + 0x1c]
xor edx, edx
div esi
test edx, edx
jne 0x1000291c
mov eax, dword [ebx + 0x20]
div ecx
test edx, edx
jne 0x1000291c
mov eax, dword [ebx + 0x1c]
imul eax, dword [ebp + 0x50]
mov edi, dword [ebp + 0x5c]
div esi
xor edx, edx
mov dword [ebp - 0x40], eax
mov eax, dword [ebx + 0x20]
imul eax, dword [ebp + 0x54]
div ecx
xor edx, edx
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp + 0x58]
inc eax
imul eax, dword [ebx + 0x1c]
div esi
xor edx, edx
mov esi, dword [ebp + 0x58]
dec eax
sub esi, dword [ebp + 0x50]
mov dword [ebp - 0x38], eax
inc esi
lea eax, [edi + 1]
mov dword [ebp - 0x50], esi
imul eax, dword [ebx + 0x20]
mov dword [ebp + 0x48], esi
div ecx
mov ecx, edi
sub ecx, dword [ebp + 0x54]
dec eax
mov dword [ebp - 0x34], eax
inc ecx
movdqu xmm0, xmmword [ebp - 0x40]
mov dword [ebp - 0x4c], ecx
mov dword [ebp + 0x4c], ecx
movdqu xmmword [ebp + 0x60], xmm0
movdqa xmm0, xmmword [0x100304e0]
movdqu xmmword [ebp - 0xe8], xmm0
mov dword [ebp + 0x38], esi
movdqu xmmword [ebp + 0x50], xmm0
mov edi, dword [ebp + 0x64]
mov eax, dword [ebp + 0x60]
cmp esi, 1
jl 0x1000292d
cmp ecx, 1
jl 0x1000292d
xor edx, edx
jmp 0x10002932
mov edx, 1
test dl, dl
jne 0x10002ac5
mov edx, dword [ebx + 0x1c]
test edx, edx
je 0x10002ac5
cmp dword [ebx + 0x20], 0
mov esi, dword [ebp + 0x38]
je 0x10002ac5
cmp eax, dword [ebp + 0x68]
jg 0x10002960
cmp edi, dword [ebp + 0x6c]
jg 0x10002960
xor eax, eax
jmp 0x10002965
mov eax, 1
test al, al
je 0x10002a28
mov eax, dword [ebx + 0x20]
movd xmm0, ecx
lea ecx, [ebp - 0x58]
cvtdq2pd xmm0, xmm0
mov dword [ebp - 8], 8
movd xmm2, eax
cvtdq2pd xmm2, xmm2
shr eax, 0x1f
movd xmm1, edx
addsd xmm2, qword [eax*8 + 0x100304c0]
cvtdq2pd xmm1, xmm1
shr edx, 0x1f
lea eax, [ebp - 0x48]
divsd xmm2, xmm0
addsd xmm1, qword [edx*8 + 0x100304c0]
movd xmm0, esi
cvtdq2pd xmm0, xmm0
movsd qword [ebp - 0x58], xmm2
divsd xmm1, xmm0
movsd xmm0, qword [0x100304b0]
comisd xmm2, xmm1
movsd qword [ebp - 0x48], xmm1
cmovbe eax, ecx
sub esp, 8
divsd xmm0, qword [eax]
movsd qword [ebp + 0x14], xmm0
fld qword [ebp + 0x14]
fstp qword [esp]
call sub.MSVCR120.dll_ceil
fstp qword [ebp + 0x14]
cvttsd2si eax, qword [ebp + 0x14]
add esp, 8
mov dword [ebp - 0x18], 1
lea ecx, [ebp - 8]
mov dword [ebx + 0x34], 8
lea edx, [ebp - 0x10]
cmp eax, 8
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x18]
cmovle ecx, edx
cmp dword [ecx], 1
cmovg eax, ecx
mov eax, dword [eax]
mov dword [ebx + 0x30], eax
jmp 0x10002ac5
mov eax, dword [ebp + 0x6c]
sub eax, edi
inc eax
mov dword [ebp + 0x20], eax
cdq
idiv ecx
lea ecx, [ebp - 0x14]
mov esi, eax
mov eax, dword [ebp + 0x68]
sub eax, dword [ebp + 0x60]
inc eax
mov dword [ebp], esi
mov dword [ebp + 0x24], eax
cdq
idiv dword [ebp + 0x38]
lea edx, [ebp]
cmp eax, esi
mov dword [ebp - 0x14], eax
cmovge ecx, edx
mov eax, dword [ecx]
mov dword [ebx + 0x34], eax
cmp eax, 2
jae 0x10002a68
mov dword [ebx + 0x34], 1
jmp 0x10002a84
cmp eax, 4
jae 0x10002a76
mov dword [ebx + 0x34], 2
jmp 0x10002a84
cmp eax, 8
sbb eax, eax
and eax, 0xfffffffc
add eax, 8
mov dword [ebx + 0x34], eax
cmp dword [ebx + 0x34], 1
mov dword [ebx + 0x30], 1
jbe 0x10002ac5
mov esi, dword [ebp + 0x20]
mov eax, dword [ebp + 0x60]
xor edx, edx
mov ecx, dword [ebx + 0x34]
div ecx
test edx, edx
jne 0x10002abb
mov eax, edi
div ecx
test edx, edx
jne 0x10002abb
mov eax, dword [ebp + 0x24]
div ecx
test edx, edx
jne 0x10002abb
mov eax, esi
div ecx
test edx, edx
je 0x10002ac5
shr ecx, 1
mov dword [ebx + 0x34], ecx
cmp ecx, 1
ja 0x10002a94
cmp dword [ebp + 0x1c], 0x32
jge 0x10002ad6
mov dword [ebx + 0x44], 1
mov byte [ebx + 0x48], 0
push ebx
call fcn.1001bd20
mov eax, dword [ebx + 0x5c]
add esp, 4
mov edx, dword [ebp + 0x60]
dec eax
movdqa xmm0, xmmword [0x100304e0]
mov edi, dword [ebp + 0x6c]
mov dword [ebp + 0xc], eax
mov eax, dword [ebx + 0x60]
dec eax
mov dword [ebp + 4], 0
cmp edx, dword [ebp + 0x68]
mov edx, dword [ebp + 0x64]
mov dword [ebp + 8], 0
mov dword [ebp + 0x10], eax
movdqu xmmword [ebp + 0x28], xmm0
jg 0x10002b1e
cmp edx, edi
jg 0x10002b1e
xor eax, eax
jmp 0x10002b23
mov eax, 1
test al, al
je 0x10002b31
movdqu xmm0, xmmword [ebp + 4]
jmp 0x10002bad
mov ecx, dword [ebx + 0x34]
cmp ecx, dword [ebx + 0x30]
jne 0x10002b51
lea eax, [ebp + 4]
push eax
lea eax, [ebp - 0x68]
push eax
lea ecx, [ebp + 0x60]
call dword [sym.imp.Qt5Core.dll_public:_class_QRect___thiscall_QRect::operator_class_QRect_const__]
movdqu xmm0, xmmword [ebp - 0x68]
jmp 0x10002bad
mov eax, edx
sub edi, dword [ebp + 0x64]
cdq
idiv ecx
mov esi, eax
mov eax, dword [ebp + 0x60]
cdq
idiv ecx
mov dword [ebp - 0x2c], esi
mov ecx, eax
mov eax, dword [ebp + 0x68]
sub eax, dword [ebp + 0x60]
inc eax
mov dword [ebp - 0x30], ecx
cdq
dec ecx
idiv dword [ebx + 0x34]
add ecx, eax
lea eax, [edi + 1]
cdq
idiv dword [ebx + 0x34]
mov dword [ebp - 0x28], ecx
lea ecx, [ebp + 0x28]
dec eax
add eax, esi
mov dword [ebp - 0x24], eax
lea eax, [ebp + 4]
movdqu xmm0, xmmword [ebp - 0x30]
push eax
lea eax, [ebp - 0xb8]
push eax
movdqu xmmword [ebp + 0x28], xmm0
call dword [sym.imp.Qt5Core.dll_public:_class_QRect___thiscall_QRect::operator_class_QRect_const__]
movdqu xmm0, xmmword [ebp - 0xb8]
lea eax, [ebp - 0x98]
push eax
lea ecx, [ebp + 0x28]
movdqu xmmword [ebp + 0x28], xmm0
call dword [sym.imp.Qt5Core.dll_public:_class_QSize___thiscall_QRect::size_void_]
mov esi, dword [ebp + 0x44]
push eax
push ebx
push esi
call fcn.10001c10
add esp, 0xc
test al, al
jne 0x10002be5
mov eax, dword [ebp + 0x7c]
push 1
add eax, 0x84
push eax
call dword [sym.imp.MSVCR120.dll_longjmp]
mov edx, dword [ebx + 0x68]
cmp edx, 1
jne 0x10002c58
mov eax, dword [ebp + 0x28]
cmp eax, dword [ebp + 4]
jne 0x10002c11
mov eax, dword [ebp + 0x30]
cmp eax, dword [ebp + 0xc]
jne 0x10002c11
mov eax, dword [ebp + 0x2c]
cmp eax, dword [ebp + 8]
jne 0x10002c11
mov eax, dword [ebp + 0x34]
cmp eax, dword [ebp + 0x10]
jne 0x10002c11
mov eax, edx
jmp 0x10002c13
xor eax, eax
test al, al
je 0x10002c58
push ebx
call fcn.10012d40
mov eax, dword [ebx + 0x78]
add esp, 4
cmp eax, dword [ebx + 0x60]
jae 0x10002dfc
mov edi, dword [sym.imp.Qt5Gui.dll_public:_unsigned_char____thiscall_QImage::scanLine_int_]
push dword [ebx + 0x78]
mov ecx, esi
call edi
mov dword [ebp - 0xc], eax
lea eax, [ebp - 0xc]
push 1
push eax
push ebx
call fcn.10012ca0
mov eax, dword [ebx + 0x78]
add esp, 0xc
cmp eax, dword [ebx + 0x60]
jb 0x10002c32
jmp 0x10002dfc
mov eax, dword [ebx + 0x5c]
mov ecx, dword [ebx + 4]
imul eax, edx
push 1
push eax
mov eax, dword [ecx + 8]
push 1
push ebx
call eax
push ebx
mov dword [ebp + 0x38], eax
call fcn.10012d40
mov ecx, dword [ebx + 0x78]
add esp, 0x14
cmp ecx, dword [ebx + 0x60]
jae 0x10002dfc
mov eax, dword [ebp + 0x34]
sub eax, dword [ebp + 0x2c]
mov edi, dword [ebx + 0x78]
inc eax
sub edi, dword [ebp + 0x2c]
cmp edi, eax
jge 0x10002dfc
push 1
push dword [ebp + 0x38]
push ebx
call fcn.10012ca0
add esp, 0xc
test edi, edi
js 0x10002df0
mov eax, dword [ebx + 0x68]
cmp eax, 3
jne 0x10002ce3
mov eax, dword [ebp + 0x28]
mov ecx, dword [ebp + 0x44]
push edi
lea esi, [eax + eax*2]
mov eax, dword [ebp + 0x38]
add esi, dword [eax]
call dword [sym.imp.Qt5Gui.dll_public:_unsigned_char____thiscall_QImage::scanLine_int_]
mov ecx, dword [ebp + 0x30]
mov edx, esi
sub ecx, dword [ebp + 0x28]
inc ecx
push ecx
mov ecx, eax
call dword [ebp + 0x74]
mov esi, dword [ebp + 0x44]
jmp 0x10002df0
cmp dword [ebx + 0x2c], 4
jne 0x10002dc8
mov eax, dword [ebp + 0x38]
mov ecx, esi
push edi
mov eax, dword [eax]
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x28]
mov dword [ebp + 0x18], eax
call dword [sym.imp.Qt5Gui.dll_public:_unsigned_char____thiscall_QImage::scanLine_int_]
mov ecx, dword [ebp + 0x30]
sub ecx, dword [ebp + 0x28]
inc ecx
mov dword [ebp + 0x24], eax
mov dword [ebp + 0x20], 0
test ecx, ecx
jle 0x10002df0
mov ecx, dword [ebp + 0x18]
lea ebx, [ecx*4 + 1]
add ebx, dword [ebp - 4]
lea ebx, [ebx]
movzx esi, byte [ebx + 2]
lea ebx, [ebx + 4]
movzx ecx, byte [ebx - 5]
mov eax, 0x80808081
imul ecx, esi
imul ecx
mov eax, 0x80808081
add edx, ecx
movzx ecx, byte [ebx - 4]
sar edx, 7
imul ecx, esi
mov edi, edx
shr edi, 0x1f
add edi, edx
or edi, 0xff00
shl edi, 8
imul ecx
add edx, ecx
movzx ecx, byte [ebx - 3]
sar edx, 7
mov eax, edx
imul ecx, esi
shr eax, 0x1f
add eax, edx
and eax, 0xff
or edi, eax
mov eax, 0x80808081
imul ecx
shl edi, 8
add edx, ecx
mov ecx, dword [ebp + 0x20]
sar edx, 7
inc ecx
mov eax, edx
mov dword [ebp + 0x20], ecx
shr eax, 0x1f
add eax, edx
and eax, 0xff
or edi, eax
mov eax, dword [ebp + 0x24]
mov dword [eax], edi
add eax, 4
mov dword [ebp + 0x24], eax
mov eax, dword [ebp + 0x30]
sub eax, dword [ebp + 0x28]
inc eax
cmp ecx, eax
jl 0x10002d30
mov ebx, dword [ebp + 0x78]
mov esi, dword [ebp + 0x44]
jmp 0x10002df0
cmp eax, 1
jne 0x10002df0
mov eax, dword [ebp + 0x30]
mov ecx, esi
sub eax, dword [ebp + 0x28]
inc eax
push eax
mov eax, dword [ebp + 0x38]
mov eax, dword [eax]
add eax, dword [ebp + 0x28]
push eax
push edi
call dword [sym.imp.Qt5Gui.dll_public:_unsigned_char____thiscall_QImage::scanLine_int_]
push eax
call sub.MSVCR120.dll_memcpy
add esp, 0xc
mov eax, dword [ebx + 0x78]
cmp eax, dword [ebx + 0x60]
jb 0x10002c84
mov eax, dword [ebx + 0x78]
cmp eax, dword [ebx + 0x60]
jne 0x10002e0d
push ebx
call fcn.10012b50
add esp, 4
mov al, byte [ebx + 0x103]
cmp al, 1
jne 0x10002e64
movzx eax, word [ebx + 0x104]
mov ecx, esi
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x100304b8]
divsd xmm0, qword [0x100304a8]
cvttsd2si eax, xmm0
push eax
call dword [sym.imp.Qt5Gui.dll_public:_void___thiscall_QImage::setDotsPerMeterX_int_]
movzx eax, word [ebx + 0x106]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x100304b8]
divsd xmm0, qword [0x100304a8]
jmp 0x10002ea3
cmp al, 2
jne 0x10002eb0
movzx eax, word [ebx + 0x104]
mov ecx, esi
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x100304b8]
cvttsd2si eax, xmm0
push eax
call dword [sym.imp.Qt5Gui.dll_public:_void___thiscall_QImage::setDotsPerMeterX_int_]
movzx eax, word [ebx + 0x106]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x100304b8]
cvttsd2si eax, xmm0
mov ecx, esi
push eax
call dword [sym.imp.Qt5Gui.dll_public:_void___thiscall_QImage::setDotsPerMeterY_int_]
cmp dword [ebp + 0x48], 0
jl 0x10002ec3
cmp dword [ebp + 0x4c], 0
jl 0x10002ec3
mov eax, 1
jmp 0x10002ec5
xor eax, eax
mov edi, dword [sym.imp.Qt5Gui.dll_public_virtual:_void___thiscall_QImage::destructor_void_]
test al, al
je 0x10002f22
lea eax, [ebp - 0x80]
push eax
lea ecx, [ebp + 0x28]
call dword [sym.imp.Qt5Core.dll_public:_class_QSize___thiscall_QRect::size_void_]
mov ecx, dword [ebp + 0x48]
cmp ecx, dword [eax]
jne 0x10002eef
mov ecx, dword [ebp + 0x4c]
cmp ecx, dword [eax + 4]
jne 0x10002eef
xor eax, eax
jmp 0x10002ef4
mov eax, 1
test al, al
je 0x10002f22
xor eax, eax
mov ecx, esi
cmp dword [ebp + 0x1c], 0x32
setge al
push eax
push 0
lea eax, [ebp + 0x48]
push eax
lea eax, [ebp - 0x78]
push eax
call dword [sym.imp.Qt5Gui.dll_public:_class_QImage___thiscall_QImage::scaled_class_QSize_const___enum_Qt::AspectRatioMode__enum_Qt::TransformationMode_]
push eax
mov ecx, esi
call dword [sym.imp.Qt5Gui.dll_public:_class_QImage____thiscall_QImage::operator_class_QImage__]
lea ecx, [ebp - 0x78]
call edi
mov eax, dword [ebp + 0x50]
cmp eax, dword [ebp + 0x58]
jg 0x10002f36
mov eax, dword [ebp + 0x54]
cmp eax, dword [ebp + 0x5c]
jg 0x10002f36
xor eax, eax
jmp 0x10002f3b
mov eax, 1
test al, al
jne 0x10002f63
lea eax, [ebp + 0x50]
mov ecx, esi
push eax
lea eax, [ebp - 0x90]
push eax
call dword [sym.imp.Qt5Gui.dll_public:_class_QImage___thiscall_QImage::copy_class_QRect_const__]
push eax
mov ecx, esi
call dword [sym.imp.Qt5Gui.dll_public:_class_QImage____thiscall_QImage::operator_class_QImage__]
lea ecx, [ebp - 0x90]
call edi
mov ecx, esi
call dword [sym.imp.Qt5Gui.dll_public:_bool___thiscall_QImage::isNull_void_const]
xor ecx, ecx
test al, al
sete cl
mov al, cl
pop edi
pop esi
pop ebx
lea esp, [ebp + 0x3c]
pop ebp
ret
pop edi
pop esi
xor al, al
pop ebx
lea esp, [ebp + 0x3c]
pop ebp
ret