Function at 0x44c5b8
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffc8
xor eax, eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x20], eax
xor eax, eax
push ebp
push 0x44d09a
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x636440]
inc eax
cmp eax, dword [0x6353e0]
sete byte [ebp - 0x19]
mov byte [ebp - 0x17], 0
mov byte [ebp - 0x16], 0
xor eax, eax
mov dword [ebp - 0x14], eax
xor eax, eax
mov dword [ebp - 0x10], eax
mov eax, dword [0x635420]
mov ecx, 0x64
cdq
idiv ecx
add eax, dword [0x635424]
mov dword [ebp - 4], eax
mov eax, dword [0x6353e0]
cmp eax, dword [0x636440]
jl 0x44c62d
mov eax, dword [0x636440]
add eax, 2
cmp eax, dword [0x6353e0]
jne 0x44cb0c
imul eax, dword [0x6353e0], 0xab
mov edx, dword [0x636450]
lea eax, [edx + eax]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
cmp byte [eax + 0x94], 0
je 0x44c656
xor eax, eax
mov dword [0x6353ec], eax
mov eax, dword [ebp - 4]
inc eax
mov edx, dword [ebp - 0x24]
mov dword [edx + 0x9c], eax
mov eax, dword [ebp - 0x24]
inc word [eax + 0xa0]
mov eax, dword [0x6353e0]
lea eax, [eax + eax*2]
mov edx, dword [0x636470]
mov eax, dword [edx + eax*4]
lea ecx, [ebp - 0x20]
mov edx, 2
call fcn.004254dc
mov eax, dword [ebp - 0x20]
call fcn.00403224
cmp eax, 2
jle 0x44c740
mov eax, dword [ebp - 0x20]
mov al, byte [eax]
sub al, 0x2b
je 0x44c6ae
sub al, 2
je 0x44c6f6
jmp 0x44c740
lea eax, [ebp - 0x20]
mov ecx, 1
mov edx, 1
call fcn.004034bc
mov edx, dword [0x636464]
mov eax, dword [ebp - 0x20]
call fcn.00403560
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jne 0x44c740
push dword [0x636464]
push dword [ebp - 0x20]
push 0x44d0b0
mov eax, 0x636464
mov edx, 3
call fcn.004032e4
jmp 0x44c740
cmp dword [0x636464], 0
je 0x44c740
lea eax, [ebp - 0x20]
mov ecx, 1
mov edx, 1
call fcn.004034bc
mov edx, dword [0x636464]
mov eax, dword [ebp - 0x20]
call fcn.00403560
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jle 0x44c740
mov eax, dword [ebp - 0x20]
call fcn.00403224
mov ecx, eax
inc ecx
mov eax, 0x636464
mov edx, dword [ebp - 8]
call fcn.004034bc
mov eax, dword [0x6353e0]
lea eax, [eax + eax*2]
mov edx, dword [0x636470]
mov eax, dword [edx + eax*4]
lea ecx, [ebp - 0x20]
mov edx, 1
call fcn.004254dc
cmp dword [ebp - 0x20], 0
je 0x44c77a
mov edx, dword [ebp - 0x20]
mov eax, 0x44d0bc
call fcn.00403560
test eax, eax
jle 0x44c77a
call fcn.0044db94
mov eax, dword [ebp - 0x24]
movsx edx, word [eax + 0x53]
mov eax, 0x7019c8
call fcn.0043403c
mov eax, dword [ebp - 0x24]
movsx eax, word [eax + 0x55]
add dword [0x703084], eax
cmp dword [0x703084], 0
jge 0x44c7a8
xor eax, eax
mov dword [0x703084], eax
mov eax, dword [ebp - 0x24]
movsx eax, word [eax + 0x59]
add dword [0x635c5c], eax
cmp dword [0x635c5c], 0
jge 0x44c7c5
xor eax, eax
mov dword [0x635c5c], eax
mov eax, dword [ebp - 0x24]
cmp byte [eax + 0x79], 0
jbe 0x44c7da
mov eax, dword [ebp - 0x24]
movzx eax, byte [eax + 0x79]
call fcn.00437e74
mov eax, dword [ebp - 0x24]
cmp byte [eax + 0x7a], 0
jbe 0x44c7ef
mov eax, dword [ebp - 0x24]
movzx eax, byte [eax + 0x7a]
call fcn.00437e74
mov eax, dword [ebp - 0x24]
cmp byte [eax + 0x7b], 0
jbe 0x44c804
mov eax, dword [ebp - 0x24]
movzx eax, byte [eax + 0x7b]
call fcn.00437dc4
mov eax, dword [ebp - 0x24]
cmp byte [eax + 0x10], 0
jbe 0x44c927
mov eax, dword [ebp - 0x24]
movzx eax, byte [eax + 0x10]
imul eax, eax, 0x380f
add eax, 0x7019c4
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x24]
movsx eax, byte [eax + 0x11]
mov edx, dword [ebp - 0x28]
add dword [edx + 0x16a4], eax
mov eax, dword [ebp - 0x28]
cmp dword [eax + 0x16a4], 0
jge 0x44c84d
mov eax, dword [ebp - 0x28]
xor edx, edx
mov dword [eax + 0x16a4], edx
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0x1704]
mov edx, dword [ebp - 0x28]
sub eax, dword [edx + 0x16a4]
mov edx, dword [ebp - 0x28]
mov dword [edx + 0x16a8], eax
mov eax, dword [ebp - 0x28]
cmp dword [eax + 0x16a8], 0
jge 0x44c87f
mov eax, dword [ebp - 0x28]
xor edx, edx
mov dword [eax + 0x16a8], edx
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0x1708]
mov edx, dword [ebp - 0x28]
sub eax, dword [edx + 0x16a4]
mov edx, dword [ebp - 0x28]
mov dword [edx + 0x16ac], eax
mov eax, dword [ebp - 0x28]
cmp dword [eax + 0x16ac], 0
jge 0x44c8b1
mov eax, dword [ebp - 0x28]
xor edx, edx
mov dword [eax + 0x16ac], edx
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0x1704]
mov edx, dword [ebp - 0x28]
add eax, dword [edx + 0x16a4]
mov edx, dword [ebp - 0x28]
mov dword [edx + 0x16b0], eax
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0x16b0]
cmp eax, dword [0xa86d10]
jl 0x44c8ec
mov eax, dword [0xa86d10]
dec eax
mov edx, dword [ebp - 0x28]
mov dword [edx + 0x16b0], eax
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0x1708]
mov edx, dword [ebp - 0x28]
add eax, dword [edx + 0x16a4]
mov edx, dword [ebp - 0x28]
mov dword [edx + 0x16b4], eax
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0x16b4]
cmp eax, dword [0xa86d14]
jl 0x44c927
mov eax, dword [0xa86d14]
dec eax
mov edx, dword [ebp - 0x28]
mov dword [edx + 0x16b4], eax
mov eax, dword [ebp - 0x24]
cmp byte [eax + 0x90], 0
jbe 0x44c99b
mov eax, dword [ebp - 0x24]
movzx eax, byte [eax + 0x90]
imul eax, eax, 0x380f
add eax, 0x7019c4
mov dword [ebp - 0x2c], eax
push 0
mov eax, dword [ebp - 0x2c]
mov eax, dword [eax + 0x170c]
mov edx, dword [ebp - 0x2c]
mov edx, dword [edx + 0x1710]
shl edx, 0x10
add eax, edx
push eax
mov edx, 0x450af8
xor ecx, ecx
xor eax, eax
call fcn.0042df58
mov eax, dword [ebp - 0x2c]
mov eax, dword [eax + 0x170c]
mov edx, dword [ebp - 0x2c]
mov edx, dword [edx + 0x1710]
shl edx, 0x10
add eax, edx
push eax
push 6
mov edx, 0x4509c8
xor ecx, ecx
xor eax, eax
call fcn.0042df58
mov byte [ebp - 0x15], 0
mov dword [ebp - 8], 1
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x24]
cmp word [edx + eax*2 + 0x7e], 0
jbe 0x44ca2a
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x24]
movzx eax, word [edx + eax*2 + 0x7e]
imul eax, eax, 0x63
mov edx, dword [0x63644c]
lea eax, [edx + eax - 0x63]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x30]
cmp byte [eax + 0x26], 0
jbe 0x44ca2a
push 0
mov eax, dword [ebp - 0x30]
movzx eax, word [eax]
mov edx, dword [ebp - 0x30]
movzx edx, word [edx + 2]
shl edx, 0x10
add eax, edx
push eax
mov edx, 0x450af8
xor ecx, ecx
xor eax, eax
call fcn.0042df58
mov eax, dword [ebp - 0x30]
movzx eax, word [eax]
mov edx, dword [ebp - 0x30]
movzx edx, word [edx + 2]
shl edx, 0x10
add eax, edx
push eax
mov eax, dword [ebp - 0x30]
movzx eax, byte [eax + 0x26]
add eax, eax
push eax
mov edx, 0x4509c8
xor ecx, ecx
xor eax, eax
call fcn.0042df58
mov byte [ebp - 0x15], 1
inc dword [ebp - 8]
cmp dword [ebp - 8], 5
jne 0x44c9a6
cmp byte [ebp - 0x15], 0
jne 0x44ca49
mov eax, dword [ebp - 0x24]
cmp byte [eax + 0x90], 0
jbe 0x44ca4d
mov byte [ebp - 0x16], 1
mov eax, dword [ebp - 0x24]
cmp byte [eax + 1], 3
jne 0x44ca60
mov eax, dword [0x6353e0]
call fcn.0043d314
mov eax, dword [ebp - 0x24]
cmp word [eax + 0x7c], 0
jbe 0x44ca77
mov eax, dword [ebp - 0x24]
movzx eax, word [eax + 0x7c]
dec eax
call fcn.0043d45c
mov eax, dword [ebp - 0x24]
cmp byte [eax + 0x51], 0
jbe 0x44ca8a
mov eax, dword [ebp - 0x24]
movzx eax, byte [eax + 0x51]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x24]
cmp byte [eax + 0x8f], 0
je 0x44cab2
mov eax, dword [ebp - 0x24]
cmp byte [eax + 0x88], 0
jbe 0x44cab2
mov eax, dword [ebp - 0x24]
movzx eax, byte [eax + 0x88]
inc eax
call fcn.00439518
mov eax, dword [ebp - 0x24]
cmp byte [eax + 0x89], 0
jbe 0x44cace
mov eax, dword [ebp - 0x24]
movzx eax, byte [eax + 0x89]
dec eax
mov dword [0x7019c8], eax
mov eax, dword [ebp - 0x24]
movzx eax, word [eax + 0x8a]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x24]
cmp word [eax + 0x4d], 0
jbe 0x44cb0c
mov eax, dword [ebp - 0x24]
movzx eax, word [eax + 0x4d]
imul eax, eax, 0xab
mov edx, dword [0x636450]
mov ecx, dword [ebp - 0x24]
movzx ecx, word [ecx + 0x4f]
imul ecx, ecx, 0x3c
add ecx, dword [ebp - 4]
mov dword [edx + eax - 0xa9], ecx
mov eax, dword [0x6353e0]
cmp eax, dword [0x636440]
jne 0x44cb76
mov eax, dword [0x6101d8]
add dword [0x703084], eax
mov eax, dword [0x6101dc]
add dword [0x635c5c], eax
xor eax, eax
mov dword [0x6101d8], eax
xor eax, eax
mov dword [0x6101dc], eax
xor eax, eax
mov dword [ebp - 0xc], eax
xor eax, eax
mov dword [ebp - 8], eax
mov eax, dword [ebp - 8]
cmp dword [eax*4 + 0x610158], 0
je 0x44cb57
inc dword [ebp - 0xc]
inc dword [ebp - 8]
cmp dword [ebp - 8], 0x20
jne 0x44cb47
cmp dword [ebp - 0xc], 0
jle 0x44cb71
mov eax, dword [0x636440]
inc eax
mov dword [ebp - 0x10], eax
jmp 0x44cb76
xor eax, eax
mov dword [ebp - 0x10], eax
mov eax, dword [0x636440]
inc eax
cmp eax, dword [0x6353e0]
jne 0x44cb94
xor eax, eax
mov dword [ebp - 0x10], eax
call dword [0x499414]
mov dword [0xaac5f8], eax
mov eax, dword [0x636440]
add eax, 2
cmp eax, dword [0x6353e0]
jne 0x44cc30
imul eax, dword [0x61947c], 0xb3
mov edx, dword [0x636444]
mov word [edx + eax*2 - 0x48], 0
imul eax, dword [0x61947c], 0xb3
mov edx, dword [0x636444]
mov byte [edx + eax*2 - 6], 0
cmp dword [0x619480], 5
jne 0x44cc26
mov eax, dword [0x7019c4]
test eax, eax
jle 0x44cc26
mov dword [ebp - 0x34], eax
mov dword [ebp - 8], 1
imul eax, dword [ebp - 8], 0x1db
mov byte [eax + 0x701992], 1
mov eax, dword [0x635420]
mov ecx, 0x64
cdq
idiv ecx
add eax, dword [0x635424]
imul edx, dword [ebp - 8], 0x1db
mov dword [edx + 0x701993], eax
inc dword [ebp - 8]
dec dword [ebp - 0x34]
jne 0x44cbf0
mov dword [0x489640], 0xffffffff
movzx eax, word [0xa86dd6]
mov edx, dword [0x6353e0]
inc edx
cmp eax, edx
je 0x44cc54
movzx eax, word [0xa86ddc]
mov edx, dword [0x6353e0]
inc edx
cmp eax, edx
jne 0x44ccbc
lea eax, [ebp - 0x38]
mov ecx, dword [0x636460]
mov edx, 0x44d0d4
call fcn.00403270
mov eax, dword [ebp - 0x38]
call fcn.00414b04
mov byte [ebp - 0x18], al
cmp byte [0xa86e13], 0
je 0x44cc93
cmp byte [ebp - 0x18], 0
je 0x44cc93
movzx eax, word [0xa86ddc]
mov edx, dword [0x6353e0]
inc edx
cmp eax, edx
jne 0x44ccab
mov byte [0x61c0d6], 0
mov byte [0x489668], 1
call fcn.00460adc
jmp 0x44d07c
mov byte [0x489668], 1
call fcn.00456c8c
jmp 0x44d07c
mov dl, 1
xor eax, eax
call fcn.004386fc
call fcn.0043e3c8
imul eax, dword [0x6353e0], 0xab
mov edx, dword [0x636450]
mov byte [edx + eax + 0xa2], 0
mov dword [0x6353e0], 0xffffffff
mov byte [0x61c0d5], 0
cmp byte [0x489650], 0
jne 0x44cd03
mov byte [0xa8c562], 1
cmp byte [0x61c0d6], 0
je 0x44cd61
cmp dword [ebp - 0x10], 0
jle 0x44cd57
mov eax, dword [ebp - 0x10]
dec eax
call fcn.00448f70
cmp byte [0x61c0d6], 0
je 0x44cd37
mov eax, dword [ebp - 0x10]
dec eax
call fcn.00449ff4
call fcn.0044c5b8
jmp 0x44d07c
mov eax, dword [ebp - 0x10]
dec eax
call fcn.00449ff4
cmp byte [0x489650], 0
jne 0x44d07c
call fcn.0044d54c
jmp 0x44d07c
call fcn.0044d0dc
jmp 0x44d07c
cmp dword [0x6353e4], 0
jle 0x44ce5c
cmp dword [0x61c3cc], 0xffffffff
jne 0x44ce5c
cmp byte [ebp - 0x16], 0
jne 0x44ce5c
cmp dword [ebp - 0x14], 0
jne 0x44ce5c
xor eax, eax
mov dword [ebp - 8], eax
mov eax, dword [ebp - 8]
xor edx, edx
mov dword [eax*4 + 0x6185b8], edx
inc dword [ebp - 8]
cmp dword [ebp - 8], 0x100
jne 0x44cd94
xor eax, eax
mov dword [0x6189b8], eax
mov eax, dword [0x635848]
dec eax
test eax, eax
jl 0x44ce15
inc eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 8], 0
mov eax, dword [ebp - 8]
cmp dword [eax*4 + 0x635448], 0
je 0x44ce0d
mov eax, dword [ebp - 8]
imul eax, dword [eax*4 + 0x635448], 0x73
mov edx, dword [0xa8744c]
cmp dword [edx + eax*2 - 0xc6], 1
jle 0x44ce0d
mov eax, dword [ebp - 8]
mov eax, dword [eax*4 + 0x635448]
mov edx, dword [0x6189b8]
mov dword [edx*4 + 0x6185b8], eax
inc dword [0x6189b8]
inc dword [ebp - 8]
dec dword [ebp - 0x34]
jne 0x44cdc8
mov byte [0x6353d3], 1
mov eax, 0x61404c
call fcn.004212e4
mov eax, dword [0x6353f8]
mov dword [0x48964c], eax
mov dword [0x6353f8], 0xffffffff
call fcn.0045b840
call fcn.0045a060
mov byte [ebp - 0x17], 1
cmp dword [ebp - 0x10], 0
jne 0x44ce55
xor eax, eax
call fcn.004164cc
mov byte [0x6353fc], 1
cmp byte [ebp - 0x19], 0
je 0x44ce87
cmp dword [0x489640], 0
jle 0x44ce72
call fcn.0045cc74
jmp 0x44ce7d
cmp byte [ebp - 0x17], 0
jne 0x44ce7d
call fcn.0045a060
call fcn.0044d0dc
jmp 0x44d07c
cmp byte [ebp - 0x16], 0
je 0x44cf1a
mov byte [0x6353d2], 0
cmp dword [0x6353e4], 0
jle 0x44cec7
cmp dword [0x61c3cc], 0xffffffff
jne 0x44cec7
xor edx, edx
mov eax, 0x61404c
call fcn.00421108
call fcn.004695a8
xor eax, eax
call fcn.004164b8
call fcn.0041b148
push 0
mov eax, dword [0x7030cc]
shl eax, 0x10
add eax, dword [0x7030c8]
push eax
mov edx, 0x450af8
xor ecx, ecx
xor eax, eax
call fcn.0042df58
cmp dword [ebp - 0x10], 0
jle 0x44cf05
push 0xfa
mov eax, dword [ebp - 0x10]
push eax
mov edx, 0x4507e4
xor ecx, ecx
xor eax, eax
call fcn.0042df58
jmp 0x44cf1a
push 0xfa
push 0
mov edx, 0x4507e4
xor ecx, ecx
xor eax, eax
call fcn.0042df58
cmp dword [ebp - 0x14], 0
jle 0x44cfe0
mov eax, dword [ebp - 0x14]
cmp eax, dword [0x48963c]
jle 0x44cf37
mov eax, dword [0x48963c]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
dec eax
call fcn.0045a11c
mov byte [0x613829], 1
mov byte [0x6353d2], 0
cmp dword [0x6353e4], 0
jle 0x44cf7d
cmp dword [0x61c3cc], 0xffffffff
jne 0x44cf7d
xor edx, edx
mov eax, 0x61404c
call fcn.00421108
call fcn.004695a8
xor eax, eax
call fcn.004164b8
call fcn.0041b148
mov dword [0x636408], 1
mov eax, dword [0x7030cc]
imul dword [0x636424]
add eax, dword [0x7030c8]
push eax
mov eax, dword [ebp - 0x14]
dec eax
push eax
mov edx, 0x45046c
xor ecx, ecx
xor eax, eax
call fcn.0042df58
cmp dword [ebp - 0x10], 0
jle 0x44cfcb
push 0xfa
mov eax, dword [ebp - 0x10]
push eax
mov edx, 0x4507e4
xor ecx, ecx
xor eax, eax
call fcn.0042df58
jmp 0x44cfe0
push 0xfa
push 0
mov edx, 0x4507e4
xor ecx, ecx
xor eax, eax
call fcn.0042df58
cmp byte [ebp - 0x16], 0
jne 0x44d07c
cmp dword [ebp - 0x14], 0
jne 0x44d07c
cmp dword [ebp - 0x10], 0
jle 0x44d043
mov eax, dword [ebp - 0x10]
dec eax
call fcn.00448f70
cmp byte [0x61c0d6], 0
je 0x44d033
mov eax, dword [ebp - 0x10]
dec eax
call fcn.00449ff4
call fcn.0044c5b8
cmp byte [0x489668], 0
jne 0x44d07c
cmp byte [0xa8c562], 0
je 0x44d06e
call fcn.0045a060
jmp 0x44d06e
mov eax, dword [ebp - 0x10]
dec eax
call fcn.00449ff4
call fcn.0044d54c
jmp 0x44d06e
cmp dword [0x489640], 0
jle 0x44d053
call fcn.0045cc74
jmp 0x44d06e
call fcn.0044d154
test al, al
je 0x44d063
call fcn.0044d54c
jmp 0x44d06e
cmp byte [ebp - 0x17], 0
jne 0x44d06e
call fcn.0045a060
cmp dword [0x6353e0], 0xffffffff
jne 0x44d07c
call fcn.0044d0dc
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x44d0a1
lea eax, [ebp - 0x38]
call fcn.004030ac
lea eax, [ebp - 0x20]
call fcn.004030ac
ret