Function at 0x7df028
Capabilities:
Encode data using xor
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff9c
push ebx
push esi
push edi
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x10]
push eax
lea eax, [ebp - 0x64]
push eax
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
call fcn.007da1f8
mov eax, dword [ebp - 4]
cmp byte [eax + 0xc0], 0
jne 0x7df731
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x60]
mov edx, dword [ebp - 4]
sub eax, dword [edx + 0x58]
je 0x7df741
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x64]
mov edx, dword [ebp - 4]
sub eax, dword [edx + 0x5c]
je 0x7df741
mov eax, dword [ebp + 0x14]
sub eax, dword [ebp - 8]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp + 0x10]
sub eax, dword [ebp - 0xc]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x2c]
cdq
xor eax, edx
sub eax, edx
mov ecx, eax
mov eax, dword [ebp - 0x30]
cdq
xor eax, edx
sub eax, edx
cmp ecx, eax
jne 0x7df0d0
mov eax, dword [ebp + 0x14]
push eax
mov eax, dword [ebp + 0x10]
push eax
mov eax, dword [ebp + 0xc]
push eax
movzx eax, byte [ebp + 8]
push eax
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.007ddf08
jmp 0x7df741
cmp dword [ebp - 0x2c], 0
jne 0x7df133
cmp dword [ebp - 0x30], 0
jle 0x7df0f5
mov eax, dword [ebp + 0x10]
dec eax
push eax
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.007dd108
jmp 0x7df112
cmp dword [ebp - 0x30], 0
jge 0x7df112
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 0x10]
inc ecx
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.007dd108
cmp byte [ebp + 8], 0
je 0x7df741
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp - 4]
call fcn.007dbac8
jmp 0x7df741
cmp dword [ebp - 0x30], 0
jne 0x7df196
cmp dword [ebp - 0x2c], 0
jle 0x7df158
mov eax, dword [ebp + 0x14]
dec eax
push eax
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.007dca34
jmp 0x7df175
cmp dword [ebp - 0x2c], 0
jge 0x7df175
mov eax, dword [ebp - 8]
push eax
mov eax, dword [ebp + 0xc]
push eax
mov edx, dword [ebp + 0x14]
inc edx
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 4]
call fcn.007dca34
cmp byte [ebp + 8], 0
je 0x7df741
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp - 4]
call fcn.007dbac8
jmp 0x7df741
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x58]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x60]
dec eax
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x64]
dec eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x2c], 0
jle 0x7df1e3
mov eax, dword [ebp - 8]
cmp eax, dword [ebp - 0x14]
jg 0x7df741
mov eax, dword [ebp + 0x14]
cmp eax, dword [ebp - 0x10]
jl 0x7df741
mov dword [ebp - 0x24], 1
jmp 0x7df21c
mov eax, dword [ebp + 0x14]
cmp eax, dword [ebp - 0x14]
jg 0x7df741
mov eax, dword [ebp - 8]
cmp eax, dword [ebp - 0x10]
jl 0x7df741
mov dword [ebp - 0x24], 0xffffffff
neg dword [ebp - 8]
neg dword [ebp + 0x14]
neg dword [ebp - 0x2c]
neg dword [ebp - 0x10]
neg dword [ebp - 0x14]
lea edx, [ebp - 0x14]
lea eax, [ebp - 0x10]
call fcn.007bcb60
cmp dword [ebp - 0x30], 0
jle 0x7df243
mov eax, dword [ebp - 0xc]
cmp eax, dword [ebp - 0x1c]
jg 0x7df741
mov eax, dword [ebp + 0x10]
cmp eax, dword [ebp - 0x18]
jl 0x7df741
mov dword [ebp - 0x28], 1
jmp 0x7df27c
mov eax, dword [ebp + 0x10]
cmp eax, dword [ebp - 0x1c]
jg 0x7df741
mov eax, dword [ebp - 0xc]
cmp eax, dword [ebp - 0x18]
jl 0x7df741
mov dword [ebp - 0x28], 0xffffffff
neg dword [ebp - 0xc]
neg dword [ebp + 0x10]
neg dword [ebp - 0x30]
neg dword [ebp - 0x18]
neg dword [ebp - 0x1c]
lea edx, [ebp - 0x1c]
lea eax, [ebp - 0x18]
call fcn.007bcb60
mov eax, dword [ebp - 0x2c]
cmp eax, dword [ebp - 0x30]
jge 0x7df2da
lea edx, [ebp - 0xc]
lea eax, [ebp - 8]
call fcn.007bcb60
lea edx, [ebp + 0x10]
lea eax, [ebp + 0x14]
call fcn.007bcb60
lea edx, [ebp - 0x30]
lea eax, [ebp - 0x2c]
call fcn.007bcb60
lea edx, [ebp - 0x18]
lea eax, [ebp - 0x10]
call fcn.007bcb60
lea edx, [ebp - 0x1c]
lea eax, [ebp - 0x14]
call fcn.007bcb60
lea edx, [ebp - 0x28]
lea eax, [ebp - 0x24]
call fcn.007bcb60
lea eax, [ebp - 0x38]
mov dword [ebp - 0x44], eax
lea eax, [ebp - 0x34]
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x20], eax
jmp 0x7df2f2
lea eax, [ebp - 0x34]
mov dword [ebp - 0x44], eax
lea eax, [ebp - 0x38]
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
imul dword [ebp - 0x28]
mov dword [ebp - 0x20], eax
xor eax, eax
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x30]
shl eax, 0x10
cdq
idiv dword [ebp - 0x2c]
mov word [ebp - 0x4c], ax
mov word [ebp - 0x4a], 0
mov eax, dword [ebp - 8]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x38], eax
mov byte [ebp - 0x3d], 1
mov byte [ebp - 0x3e], 0
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x8a]
mov edx, dword [0x9906c0]
mov eax, dword [edx + eax*4]
mov eax, dword [eax]
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0xc]
cmp eax, dword [ebp - 0x18]
jge 0x7df4cc
mov eax, dword [ebp - 0x18]
sub eax, dword [ebp - 0xc]
mov edi, eax
shl edi, 0x10
mov eax, edi
sub eax, 0x10000
mov dword [ebp - 0x3c], eax
movzx ebx, word [ebp - 0x4c]
mov eax, edi
cdq
idiv ebx
test edx, edx
jle 0x7df36f
mov eax, edi
cdq
idiv ebx
inc eax
mov edi, eax
jmp 0x7df376
mov eax, edi
cdq
idiv ebx
mov edi, eax
mov edx, dword [ebp + 0x14]
inc edx
mov eax, dword [ebp - 0x34]
add eax, edi
cmp edx, eax
jg 0x7df385
mov eax, edx
mov dword [ebp - 0x34], eax
mov eax, edi
imul word [ebp - 0x4c]
mov word [ebp - 0x4a], ax
mov eax, dword [ebp - 0x3c]
cdq
idiv ebx
test edx, edx
jle 0x7df3a8
mov eax, dword [ebp - 0x3c]
cdq
idiv ebx
inc eax
mov dword [ebp - 0x3c], eax
jmp 0x7df3b1
mov eax, dword [ebp - 0x3c]
cdq
idiv ebx
mov dword [ebp - 0x3c], eax
sub edi, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x34]
cmp eax, dword [ebp - 0x14]
jle 0x7df3ce
mov eax, dword [ebp - 0x14]
add eax, edi
cmp eax, dword [ebp - 0x34]
jl 0x7df741
mov byte [ebp - 0x3e], 1
mov eax, dword [ebp - 0x34]
cmp eax, dword [ebp - 0x10]
setge al
or al, byte [ebp - 0x3e]
je 0x7df4cc
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x3c], eax
movzx esi, word [ebp - 0x4a]
sub si, word [ebp - 0x4c]
mov eax, dword [ebp - 0x34]
sub eax, edi
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x10]
call fcn.007bcbd0
mov ebx, eax
cmp byte [ebp - 0x3e], 0
je 0x7df423
movzx eax, word [ebp - 0x34]
sub ax, word [ebp - 0x14]
dec eax
imul word [ebp - 0x4c]
sub si, ax
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x28], 0xffffffff
jne 0x7df42c
neg dword [ebp - 0x38]
cmp dword [ebp - 0x24], 0xffffffff
jne 0x7df437
neg dword [ebp - 0x34]
neg ebx
xor eax, eax
push ebp
push 0x7df49f
push dword fs:[eax]
mov dword fs:[eax], esp
cmp ebx, dword [ebp - 0x34]
je 0x7df487
mov eax, dword [ebp - 0x24]
neg eax
add dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x48]
mov eax, dword [eax]
mov edx, dword [ebp - 4]
imul dword [edx + 0x44]
mov edx, dword [ebp - 0x44]
add eax, dword [edx]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x54]
lea edx, [edx + eax*4]
movzx eax, si
shr eax, 8
movzx ecx, byte [eax + 0x9b7b48]
mov eax, dword [ebp + 0xc]
call dword [ebp - 0x54]
sub si, word [ebp - 0x4c]
cmp ebx, dword [ebp - 0x34]
jne 0x7df44a
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x7df4a6
mov ebx, dword [0x990280]
mov ebx, dword [ebx]
call ebx
ret
cmp byte [ebp - 0x3d], 0
je 0x7df51a
mov eax, dword [ebp - 8]
cmp eax, dword [ebp - 0x10]
jge 0x7df51a
mov edi, dword [ebp - 0x10]
sub edi, dword [ebp - 8]
movzx eax, word [ebp - 0x4c]
imul edi, eax
mov eax, edi
test eax, eax
jns 0x7df4f2
add eax, 0xffff
sar eax, 0x10
add dword [ebp - 0x38], eax
mov word [ebp - 0x4a], di
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x38]
cmp eax, dword [ebp - 0x1c]
jg 0x7df741
mov eax, dword [ebp - 0x38]
cmp eax, dword [ebp - 0x1c]
jne 0x7df51a
mov byte [ebp - 0x3e], 1
mov ebx, dword [ebp + 0x14]
xor eax, eax
mov byte [ebp - 0x3d], 0
mov edx, dword [ebp + 0x10]
cmp edx, dword [ebp - 0x1c]
jle 0x7df595
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0xc]
mov edi, eax
shl edi, 0x10
movzx ecx, word [ebp - 0x4c]
mov eax, edi
cdq
idiv ecx
mov ebx, eax
add ebx, dword [ebp - 8]
mov eax, edi
cdq
idiv ecx
test edx, edx
jg 0x7df54e
dec ebx
cmp ebx, dword [ebp - 0x14]
jge 0x7df593
add edi, 0x10000
mov dword [ebp - 0x3c], edi
mov eax, dword [ebp - 0x3c]
cdq
idiv ecx
test edx, edx
jle 0x7df575
mov eax, dword [ebp - 0x3c]
cdq
idiv ecx
add eax, dword [ebp - 8]
inc eax
mov dword [ebp - 0x3c], eax
jmp 0x7df581
mov eax, dword [ebp - 0x3c]
cdq
idiv ecx
add eax, dword [ebp - 8]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
cmp eax, dword [ebp - 0x14]
jle 0x7df58f
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x3c], eax
mov byte [ebp - 0x3d], 1
mov al, 1
cmp ebx, dword [ebp - 0x14]
jle 0x7df59f
mov ebx, dword [ebp - 0x14]
mov al, 1
inc ebx
cmp dword [ebp - 0x28], 0xffffffff
jne 0x7df5a9
neg dword [ebp - 0x38]
cmp dword [ebp - 0x24], 0xffffffff
jne 0x7df5b7
neg dword [ebp - 0x34]
neg ebx
neg dword [ebp - 0x3c]
cmp byte [ebp - 0x3e], 0
jne 0x7df6ae
xor edx, edx
push ebp
push 0x7df6a7
push dword fs:[edx]
mov dword fs:[edx], esp
or al, byte [ebp + 8]
jne 0x7df5e8
cmp byte [ebp - 0x3d], 0
jne 0x7df5e8
cmp ebx, dword [ebp - 0x34]
jle 0x7df5e2
dec ebx
jmp 0x7df5e8
cmp ebx, dword [ebp - 0x34]
jge 0x7df5e8
inc ebx
test ebx, ebx
jge 0x7df600
mov ecx, 0x1171
mov edx, 0x7df758
mov eax, 0x7df7fc
call fcn.0040a15c
cmp ebx, dword [ebp - 0x34]
je 0x7df68f
movzx eax, word [ebp - 0x4a]
shr eax, 8
mov byte [ebp - 0x4f], al
mov eax, dword [ebp - 0x48]
mov eax, dword [eax]
mov edx, dword [ebp - 4]
imul dword [edx + 0x44]
mov edx, dword [ebp - 0x44]
add eax, dword [edx]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x54]
lea esi, [edx + eax*4]
movzx eax, byte [ebp - 0x4f]
xor al, 0xff
movzx eax, al
movzx ecx, byte [eax + 0x9b7b48]
mov edx, esi
mov eax, dword [ebp + 0xc]
call dword [ebp - 0x54]
mov eax, dword [ebp - 0x20]
add eax, eax
add eax, eax
add esi, eax
movzx eax, byte [ebp - 0x4f]
movzx ecx, byte [eax + 0x9b7b48]
mov edx, esi
mov eax, dword [ebp + 0xc]
call dword [ebp - 0x54]
movzx eax, word [ebp - 0x4a]
mov word [ebp - 0x4e], ax
movzx eax, word [ebp - 0x4c]
add word [ebp - 0x4a], ax
movzx eax, word [ebp - 0x4a]
cmp ax, word [ebp - 0x4e]
ja 0x7df680
mov eax, dword [ebp - 0x28]
add dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x24]
add dword [ebp - 0x34], eax
cmp ebx, dword [ebp - 0x34]
jne 0x7df609
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x7df6ae
mov ebx, dword [0x990280]
mov ebx, dword [ebx]
call ebx
ret
cmp byte [ebp - 0x3d], 0
je 0x7df731
xor eax, eax
push ebp
push 0x7df72a
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x34]
cmp eax, dword [ebp - 0x3c]
je 0x7df712
mov eax, dword [ebp - 0x48]
mov eax, dword [eax]
mov edx, dword [ebp - 4]
imul dword [edx + 0x44]
mov edx, dword [ebp - 0x44]
add eax, dword [edx]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x54]
lea edx, [edx + eax*4]
movzx eax, word [ebp - 0x4a]
shr eax, 8
xor eax, 0xff
movzx ecx, byte [eax + 0x9b7b48]
mov eax, dword [ebp + 0xc]
call dword [ebp - 0x54]
movzx eax, word [ebp - 0x4c]
add word [ebp - 0x4a], ax
mov eax, dword [ebp - 0x24]
add dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x34]
cmp eax, dword [ebp - 0x3c]
jne 0x7df6ca
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x7df731
mov ebx, dword [0x990280]
mov ebx, dword [ebx]
call ebx
ret
lea edx, [ebp - 0x64]
mov ecx, 0x40000002
mov eax, dword [ebp - 4]
mov ebx, dword [eax]
call dword [ebx + 0x64]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10