Function at 0x40410b
Capabilities:
Encrypt data using rc4 prga

Disassembly:
add esp, 4
pop edi
cmp dword [ebp - 0xc1c], 0
jne 0x4040dd
mov dword [ebp - 0x29c], 0
jmp 0x40433d
mov edx, dword [ebp - 0xc1c]
mov dword [ebp - 0x4bc], edx
push ebx
jmp 0x4040f1
or ebx, 0x18472
sub ebx, 0x12c89
call 0x40410b
add byte [edx + 0x35], cl
inc edx
xor eax, dword [ebx + 0x49]
dec ebx
cmp eax, 0x5b04c483
push ecx
push ecx
add esp, 4
and ecx, 0xb237
pop ecx
lea eax, [ebp - 0x15d0]
mov dword [ebp - 0xc18], eax
mov ecx, dword [ebp - 0x4bc]
mov edx, dword [ecx + 0x30]
mov dword [ebp - 0xc14], edx
xor eax, eax
mov word [ebp - 0x1ac], ax
xor ecx, ecx
mov word [ebp - 0x100], cx
push ebx
jmp 0x404150
jmp 0x404156
jmp 0x40415d
pop ebx
push eax
add eax, 0x71b3
pop eax
push edi
push edi
add esp, 4
add edi, 0x138fd
pop edi
push eax
and eax, 0xe7a1
pop eax
mov edx, dword [ebp - 0xc14]
mov ax, word [edx]
mov word [ebp - 0xfb6], ax
mov ecx, dword [ebp - 0xc14]
add ecx, 2
mov dword [ebp - 0xc14], ecx
mov dx, word [ebp - 0xfb6]
mov word [ebp - 0x1ac], dx
mov eax, dword [ebp - 0xc18]
mov cx, word [eax]
mov word [ebp - 0xfb8], cx
mov edx, dword [ebp - 0xc18]
add edx, 2
mov dword [ebp - 0xc18], edx
mov ax, word [ebp - 0xfb8]
mov word [ebp - 0x100], ax
push eax
push ebx
add esp, 4
and eax, 0x2990
and eax, 0x4e05
or eax, 0x3540
pop eax
push eax
sub eax, 0x3d8f
or eax, 0x1514e
or eax, 0xfdbc
sub eax, 0x1061c
pop eax
movzx ecx, word [ebp - 0x100]
test ecx, ecx
jne 0x404229
movzx edx, word [ebp - 0x1ac]
movzx eax, word [ebp - 0x100]
sub edx, eax
mov dword [ebp - 0x1510], edx
jmp 0x40428c
movzx ecx, word [ebp - 0x1ac]
movzx edx, word [ebp - 0x100]
cmp ecx, edx
je 0x404148
movzx eax, word [ebp - 0x1ac]
xor eax, 0x20
movzx ecx, word [ebp - 0x100]
cmp eax, ecx
je 0x404148
invalid
movzx edx, word [ebp - 0x1ac]
movzx eax, word [ebp - 0x100]
cmp edx, eax
jge 0x404276
mov dword [ebp - 0x1508], 0xffffffff
jmp 0x404280
mov dword [ebp - 0x1508], 1
mov ecx, dword [ebp - 0x1508]
mov dword [ebp - 0x1510], ecx
cmp dword [ebp - 0x1510], 0
jne 0x4042d5
push ebx
add ebx, 0x1859a
call 0x4042aa
add byte [eax + 0x38], dl
inc edi
inc edx
xor eax, 0x83423f46
les eax, [ecx + eax*4]
jmp 0x404256
push edi
sub edi, 0x6c01
sub edi, 0xc65d
pop edi
push ebx
sub ebx, 0x4b6c
call 0x4042f7
add byte [eax + 0x3d], al
push eax
cmp dl, byte [eax + 0x38]
inc ebx
add esp, 4
and ebx, 0x4140
sub ebx, 0x17d1e
pop ebx
mov eax, dword [ebp - 0x4bc]
mov ecx, dword [eax]
mov dword [ebp - 0x4bc], ecx
mov edx, dword [ebp - 0x4bc]
cmp edx, dword [ebp - 0xc1c]
je 0x404333
mov eax, dword [ebp - 0x4bc]
cmp dword [eax + 0x30], 0
jne 0x4040e9
mov dword [ebp - 0x29c], 0
push esi
push eax
add esp, 4
xor esi, 0x8fa1
jmp 0x40434e
and esi, 0xcec9
pop esi
push esi
and esi, 0x3b0f
xor esi, 0xf3ce
pop esi
push esi
push edi
add esp, 4
add esi, 0xd09b
pop esi
cmp dword [ebp - 0x29c], 0
jne 0x404c74
mov ecx, 0x6b
mov word [ebp - 0x163c], cx
mov edx, 0x65
mov word [ebp - 0x163a], dx
mov eax, 0x72
mov word [ebp - 0x1638], ax
mov ecx, 0x6e
mov word [ebp - 0x1636], cx
mov edx, 0x65
mov word [ebp - 0x1634], dx
mov eax, 0x6c
mov word [ebp - 0x1632], ax
mov ecx, 0x33
mov word [ebp - 0x1630], cx
mov edx, 0x32
mov word [ebp - 0x162e], dx
mov eax, 0x2e
mov word [ebp - 0x162c], ax
mov ecx, 0x64
mov word [ebp - 0x162a], cx
mov edx, 0x6c
mov word [ebp - 0x1628], dx
mov eax, 0x6c
mov word [ebp - 0x1626], ax
xor ecx, ecx
mov word [ebp - 0x1624], cx
push ecx
add ecx, 0x17719
jmp 0x404424
jmp 0x40442d
pop ecx
push edx
xor edx, 0x36ca
xor edx, 0x7189
and edx, 0x12aca
jmp 0x404446
pop edx
mov byte [ebp - 0x84c], 0x4c
mov byte [ebp - 0x84b], 0x6f
mov byte [ebp - 0x84a], 0x61
mov byte [ebp - 0x849], 0x64
mov byte [ebp - 0x848], 0x4c
mov byte [ebp - 0x847], 0x69
mov byte [ebp - 0x846], 0x62
mov byte [ebp - 0x845], 0x72
mov byte [ebp - 0x844], 0x61
mov byte [ebp - 0x843], 0x72
mov byte [ebp - 0x842], 0x79
mov byte [ebp - 0x841], 0x57
mov byte [ebp - 0x840], 0
mov edx, dword fs:[0x18]
mov dword [ebp - 0x1bd0], edx
mov eax, dword [ebp - 0x1bd0]
mov ecx, dword [eax + 0x30]
mov dword [ebp - 0x1bd4], ecx
mov edx, dword [ebp - 0x1bd4]
mov dword [ebp - 0x1514], edx
push ecx
push ecx
add esp, 4
xor ecx, 0x15579
pop ecx
push esi
xor esi, 0x1136a
pop esi
push ebx
push edx
add esp, 4
sub ebx, 0x12b9f
add ebx, 0xb7a0
sub ebx, 0x16168
add ebx, 0x4a3b
pop ebx
cmp dword [ebp - 0x1514], 0
jne 0x404514
mov dword [ebp - 0x728], 0
jmp 0x4047bb
mov eax, dword [ebp - 0x1514]
mov ecx, dword [eax + 0xc]
mov edx, dword [ecx + 0xc]
mov dword [ebp - 0xc28], edx
push esi
push edi
add esp, 4
or esi, 0x8170
pop esi
push eax
push edx
add esp, 4
and eax, 0xfa22
xor eax, 0x1221d
and eax, 0x278f
pop eax
push ebx
xor ebx, 0x10d74
and ebx, 0xb8b1
pop ebx
cmp dword [ebp - 0xc28], 0
jne 0x404570
mov dword [ebp - 0x728], 0
jmp 0x4047bb
mov eax, dword [ebp - 0xc28]
mov dword [ebp - 0x4c0], eax
push edi
jmp 0x404584
xor edi, 0x13671
xor edi, 0x9d82
xor edi, 0x450c
pop edi
push edx
push ebx
add esp, 4
call 0x4045aa
add byte [ecx], bh
inc esi
xor eax, dword [edx + esi + 0x4c]
inc edi
xor eax, 0x5a04c483
lea ecx, [ebp - 0x163c]
mov dword [ebp - 0xc24], ecx
mov edx, dword [ebp - 0x4c0]
mov eax, dword [edx + 0x30]
mov dword [ebp - 0xc20], eax
xor ecx, ecx
mov word [ebp - 0x1b0], cx
xor edx, edx
mov word [ebp - 0x24], dx
push edi
push esi
add esp, 4
add edi, 0x14f7b
add edi, 0x105f5
xor edi, 0xb4cd
xor edi, 0xb6f7
pop edi
push ebx
jmp 0x4045fd
or ebx, 0x1817a
xor ebx, 0x6f18
pop ebx
mov eax, dword [ebp - 0xc20]
mov cx, word [eax]
mov word [ebp - 0xfba], cx
mov edx, dword [ebp - 0xc20]
add edx, 2
mov dword [ebp - 0xc20], edx
mov ax, word [ebp - 0xfba]
mov word [ebp - 0x1b0], ax
mov ecx, dword [ebp - 0xc24]
mov dx, word [ecx]
mov word [ebp - 0xfbc], dx
mov eax, dword [ebp - 0xc24]
add eax, 2
mov dword [ebp - 0xc24], eax
mov cx, word [ebp - 0xfbc]
mov word [ebp - 0x24], cx
push edi
call 0x404671
add byte [0x3f334e3d], bh
xor eax, dword [ecx + 0x35]
dec edi
add esp, 4
pop edi
push ecx
call 0x404683
add byte [ebp + 0x32], cl
push eax
inc esp
cmp byte [ebx], dh
dec ebp
add esp, 4
sub ecx, 0x1e17
and ecx, 0xd694
pop ecx
movzx edx, word [ebp - 0x24]
test edx, edx
jne 0x4046b0
movzx eax, word [ebp - 0x1b0]
movzx ecx, word [ebp - 0x24]
sub eax, ecx
mov dword [ebp - 0x151c], eax
jmp 0x40470a
movzx edx, word [ebp - 0x1b0]
movzx eax, word [ebp - 0x24]
cmp edx, eax
je 0x4045d8
movzx ecx, word [ebp - 0x1b0]
xor ecx, 0x20
movzx edx, word [ebp - 0x24]
cmp ecx, edx
je 0x4045d8
movzx eax, word [ebp - 0x1b0]
movzx ecx, word [ebp - 0x24]
cmp eax, ecx
jge 0x4046f4
mov dword [ebp - 0x1518], 0xffffffff
jmp 0x4046fe
mov dword [ebp - 0x1518], 1
mov edx, dword [ebp - 0x1518]
mov dword [ebp - 0x151c], edx
cmp dword [ebp - 0x151c], 0
jne 0x404753
push ecx
xor ecx, 0x858e
pop ecx
push edx
call 0x40472c
add byte [0x3b363c47], bh
dec ebx
dec esp
inc ebx
aas
dec edx
add esp, 4
or edx, 0x60ab
jmp 0x40473e
add edx, 0x14fa1
pop edx
mov eax, dword [ebp - 0x4c0]
mov dword [ebp - 0x728], eax
jmp 0x4047bb
push eax
push edx
add esp, 4
or eax, 0x181a6
or eax, 0x1482e
xor eax, 0x1144d
sub eax, 0x6b1c
pop eax
push eax
sub eax, 0x1b6b
sub eax, 0x78cd
jmp 0x404784
pop eax
mov ecx, dword [ebp - 0x4c0]
mov edx, dword [ecx]
mov dword [ebp - 0x4c0], edx
mov eax, dword [ebp - 0x4c0]
cmp eax, dword [ebp - 0xc28]
je 0x4047b1
mov ecx, dword [ebp - 0x4c0]
cmp dword [ecx + 0x30], 0
jne 0x40457c
mov dword [ebp - 0x728], 0
push edx
and edx, 0x13247
xor edx, 0x16a45
jmp 0x4047ce
pop edx
push edx
push esi
add esp, 4
xor edx, 0x99b3
sub edx, 0xfcc5
pop edx
push esi
push edi
add esp, 4
or esi, 0x4cf4
pop esi
cmp dword [ebp - 0x728], 0
jne 0x404837
push edx
sub edx, 0xf4db
sub edx, 0xb5f
add edx, 0x420c
pop edx
push esi
push edx
add esp, 4
add esi, 0x152ab
call 0x404824
add byte [ebx + eax*2 + 0x35], cl
inc ebp
xor al, 0x49
xor eax, 0xc4834e34
add al, 0x5e
mov dword [ebp - 0x774], 0
jmp 0x40535f
push esi
push ebx
add esp, 4
and esi, 0x357c
add esi, 0x1092
or esi, 0xc17
sub esi, 0xeec
pop esi
push edx
sub edx, 0x6023
or edx, 0x93a8
and edx, 0x3fee
pop edx
mov edx, dword [ebp - 0x728]
mov eax, dword [edx + 0x18]
mov dword [ebp - 0x370], eax
mov dword [ebp - 0x738], 0
mov ecx, dword [ebp - 0x370]
mov dword [ebp - 0x1520], ecx
cmp dword [ebp - 0x1520], 0
jne 0x4048a8
mov edx, dword [ebp - 0x738]
mov dword [ebp - 0x380], edx
jmp 0x404b99
mov eax, dword [ebp - 0x1520]
mov ecx, dword [ebp - 0x370]
add ecx, dword [eax + 0x3c]
mov dword [ebp - 0x1524], ecx
jne 0x4048d0
mov edx, dword [ebp - 0x738]
mov dword [ebp - 0x380], edx
jmp 0x404b99
mov eax, 8
imul ecx, eax, 0
mov edx, dword [ebp - 0x1524]
mov eax, dword [edx + ecx + 0x78]
mov dword [ebp - 0x1528], eax
cmp dword [ebp - 0x1528], 0
jne 0x404902
mov ecx, dword [ebp - 0x738]
mov dword [ebp - 0x380], ecx
jmp 0x404b99
mov edx, dword [ebp - 0x370]
add edx, dword [ebp - 0x1528]
mov dword [ebp - 0x72c], edx
jne 0x404927
mov eax, dword [ebp - 0x738]
mov dword [ebp - 0x380], eax
jmp 0x404b99
mov ecx, dword [ebp - 0x72c]
mov edx, dword [ebp - 0x370]
add edx, dword [ecx + 0x20]
mov dword [ebp - 0x1bd8], edx
mov eax, dword [ebp - 0x72c]
mov ecx, dword [ebp - 0x370]
add ecx, dword [eax + 0x24]
mov dword [ebp - 0x1bdc], ecx
mov edx, dword [ebp - 0x72c]
mov eax, dword [ebp - 0x370]
add eax, dword [edx + 0x1c]
mov dword [ebp - 0x1be0], eax
mov dword [ebp - 0x730], 0
jmp 0x404981
mov ecx, dword [ebp - 0x730]
add ecx, 1
mov dword [ebp - 0x730], ecx
mov edx, dword [ebp - 0x72c]
mov eax, dword [ebp - 0x730]
cmp eax, dword [edx + 0x18]
jae 0x404b8d
mov ecx, dword [ebp - 0x730]
mov edx, dword [ebp - 0x1bd8]
mov eax, dword [ebp - 0x370]
add eax, dword [edx + ecx*4]
mov dword [ebp - 0x734], eax
mov ecx, dword [ebp - 0x730]
mov edx, dword [ebp - 0x1bdc]
movzx eax, word [edx + ecx*2]
mov ecx, dword [ebp - 0x1be0]
mov edx, dword [ebp - 0x370]
add edx, dword [ecx + eax*4]
mov dword [ebp - 0x1be4], edx
mov dword [ebp - 0x154], 0
jmp 0x4049f1
mov eax, dword [ebp - 0x154]
add eax, 1
mov dword [ebp - 0x154], eax
mov ecx, dword [ebp - 0x734]
add ecx, dword [ebp - 0x154]
movsx edx, byte [ecx]
test edx, edx
je 0x404aa3
mov eax, dword [ebp - 0x154]
movsx ecx, byte [ebp + eax - 0x84c]
test ecx, ecx
je 0x404aa3
push esi
push ebx
add esp, 4
or esi, 0x149a6
pop esi
push ebx
push edi
add esp, 4
xor ebx, 0xe53
pop ebx
push edx
sub edx, 0x3692
add edx, 0x806d
add edx, 0x4849
or edx, 0x15bb
pop edx
mov edx, dword [ebp - 0x734]
add edx, dword [ebp - 0x154]
movsx eax, byte [edx]
mov ecx, dword [ebp - 0x154]
movsx edx, byte [ebp + ecx - 0x84c]
cmp eax, edx
je 0x404a95
mov eax, dword [ebp - 0x734]
add eax, dword [ebp - 0x154]
movsx ecx, byte [eax]
xor ecx, 0x20
mov edx, dword [ebp - 0x154]
movsx eax, byte [ebp + edx - 0x84c]
cmp ecx, eax
jne 0x404a9c
jmp 0x4049e2
jmp 0x404aa3
push ecx
push edx
add esp, 4
xor ecx, 0x14d8
or ecx, 0x5fe0
sub ecx, 0xe0b2
pop ecx
push ecx
sub ecx, 0x102cf
xor ecx, 0x10fb7
sub ecx, 0x8bd8
add ecx, 0x13057
pop ecx
mov ecx, dword [ebp - 0x734]
add ecx, dword [ebp - 0x154]
movsx edx, byte [ecx]
mov eax, dword [ebp - 0x154]
movsx ecx, byte [ebp + eax - 0x84c]
cmp edx, ecx
jne 0x404b02
mov dword [ebp - 0xc2c], 0
jmp 0x404b71
push edi
jmp 0x404b08
pop edi
push esi
push edx
add esp, 4
and esi, 0x4881
jmp 0x404b1d
pop esi
push ebx
sub ebx, 0x38ea
and ebx, 0x6bf9
pop ebx
push edi
xor edi, 0x9c79
pop edi
mov edx, dword [ebp - 0x734]
add edx, dword [ebp - 0x154]
movsx eax, byte [edx]
or eax, 0x20
mov ecx, dword [ebp - 0x154]
movsx edx, byte [ebp + ecx - 0x84c]
or edx, 0x20
cmp eax, edx
jge 0x404b67
mov dword [ebp - 0xc2c], 0xffffffff
jmp 0x404b71
mov dword [ebp - 0xc2c], 1
cmp dword [ebp - 0xc2c], 0
jne 0x404b88
mov eax, dword [ebp - 0x1be4]
mov dword [ebp - 0x380], eax
jmp 0x404b99
jmp 0x404972
mov ecx, dword [ebp - 0x738]
mov dword [ebp - 0x380], ecx
cmp dword [ebp - 0x380], 0
je 0x404c74
push ecx
xor ecx, 0x9eae
xor ecx, 0xb84d
add ecx, 0x151d4
pop ecx
push edx
push edx
add esp, 4
add edx, 0xfad3
add edx, 0x1435
add edx, 0xa04e
and edx, 0x8236
pop edx
mov edx, dword [ebp - 0x380]
mov dword [ebp - 0x1be8], edx
push eax
push esi
add esp, 4
jmp 0x404bef
pop eax
push edx
or edx, 0x8e13
call 0x404c07
add byte [ecx + 0x36], al
xor eax, 0x3a454538
inc ebx
inc esi
xor al, 0x83
les eax, [ecx + eax*4]
ret 0x7999
push esi
push edi
add esp, 4
and esi, 0x75d3
or esi, 0x1435d
pop esi
push edi
add edi, 0x6ebf
xor edi, 0x10025
pop edi
push edi
push esi
add esp, 4
add edi, 0x5ba7
xor edi, 0x286a
pop edi
mov edx, dword fs:[0x18]
mov dword [ebp - 0x1bf0], edx
mov eax, dword [ebp - 0x1bf0]
mov ecx, dword [eax + 0x30]
mov dword [ebp - 0x1bf4], ecx
mov edx, dword [ebp - 0x1bf4]
mov dword [ebp - 0x152c], edx
push esi
push eax
add esp, 4
and esi, 0x9756
call 0x404ce7
add byte [eax*2 + 0x38364e4f], dh
cmp bh, byte [ecx]
add esp, 4
pop esi
push edx
or edx, 0x10e3c
jmp 0x404cf9
xor edx, 0x1766f
pop edx
cmp dword [ebp - 0x152c], 0
jne 0x404d18
mov dword [ebp - 0x29c], 0
jmp 0x404fbf
mov eax, dword [ebp - 0x152c]
mov ecx, dword [eax + 0xc]
mov edx, dword [ecx + 0xc]
mov dword [ebp - 0xc38], edx
push ecx
push ecx
add esp, 4
or ecx, 0xf1b9
pop ecx
push eax
and eax, 0x3cc8
call 0x404d4b
add byte [0x4b4b3c47], dh
aas
add esp, 4
sub eax, 0x12376
pop eax
push edi
jmp 0x404d5b
pop edi
cmp dword [ebp - 0xc38], 0
jne 0x404d74
mov dword [ebp - 0x29c], 0
jmp 0x404fbf
mov eax, dword [ebp - 0xc38]
mov dword [ebp - 0x4c4], eax
push esi
push ebx
add esp, 4
xor esi, 0x12d31
add esi, 0xbe1b
pop esi
push ebx
push edi
add esp, 4
add ebx, 0x5ca1
jmp 0x404da5
add ebx, 0xdd6b
xor ebx, 0xc998
pop ebx
lea ecx, [ebp - 0x15d0]
mov dword [ebp - 0xc34], ecx
mov edx, dword [ebp - 0x4c4]
mov eax, dword [edx + 0x30]
mov dword [ebp - 0xc30], eax
xor ecx, ecx
mov word [ebp - 0x1b4], cx
xor edx, edx
mov word [ebp - 0x28], dx
push edi
xor edi, 0x147ad
call 0x404df0
add byte [eax], bh
inc esp
xor al, byte [ebp + 0x44]
cmp al, 0x46
add esp, 4
pop edi
push esi
push ebx
add esp, 4
sub esi, 0x5eac
jmp 0x404e07
and esi, 0x7719
pop esi
mov eax, dword [ebp - 0xc30]
mov cx, word [eax]
mov word [ebp - 0xfbe], cx
mov edx, dword [ebp - 0xc30]
add edx, 2
mov dword [ebp - 0xc30], edx
mov ax, word [ebp - 0xfbe]
mov word [ebp - 0x1b4], ax
mov ecx, dword [ebp - 0xc34]
mov dx, word [ecx]
mov word [ebp - 0xfc0], dx
mov eax, dword [ebp - 0xc34]
add eax, 2
mov dword [ebp - 0xc34], eax
mov cx, word [ebp - 0xfc0]
mov word [ebp - 0x28], cx
push ebx
xor ebx, 0x10de5
pop ebx
push eax
push ebx
add esp, 4
sub eax, 0xc12b
sub eax, 0xa841
jmp 0x404e86
call 0x404e93
add byte [eax + 0x37], al
inc edx
dec edx
inc ebp
dec eax
add esp, 4
pop eax
movzx edx, word [ebp - 0x28]
test edx, edx
jne 0x404eb4
movzx eax, word [ebp - 0x1b4]
movzx ecx, word [ebp - 0x28]
sub eax, ecx
mov dword [ebp - 0x1534], eax
jmp 0x404f0e
movzx edx, word [ebp - 0x1b4]
movzx eax, word [ebp - 0x28]
cmp edx, eax
je 0x404ddc
movzx ecx, word [ebp - 0x1b4]
xor ecx, 0x20
movzx edx, word [ebp - 0x28]
cmp ecx, edx
je 0x404ddc
movzx eax, word [ebp - 0x1b4]
movzx ecx, word [ebp - 0x28]
cmp eax, ecx
jge 0x404ef8
mov dword [ebp - 0x1530], 0xffffffff
jmp 0x404f02
mov dword [ebp - 0x1530], 1
mov edx, dword [ebp - 0x1530]
mov dword [ebp - 0x1534], edx
invalid
invalid