Function at 0x428891
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1b4
push ebx
push esi
push edi
mov esi, 0x42c538
mov dword [ebp - 0x40], edx
lea edi, [ebp - 0x34]
mov dword [ebp - 0x44], ecx
xor edx, edx
mov dword [ebp - 0x20], 0x974ce253
mov dword [ebp - 0x1c], 0x4b03cbf4
xor eax, eax
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x18], 0x4ae223d3
mov dword [ebp - 0x14], 0x82c4cacd
mov dword [ebp - 0x10], 0x822f9f98
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0xc], 0x47fdde56
movsb byte es:[edi], byte [esi]
mov byte [ebp + eax - 0x17c], al
inc eax
cmp eax, 0x100
jb 0x4288dc
xor ebx, ebx
mov cl, byte [ebp + ebx - 0x17c]
lea edi, [ebp - 0x1b4]
mov eax, ebx
mov byte [ebp - 1], cl
and eax, 7
movzx ecx, cl
push 0xe
mov esi, 0x42d5b0
movzx eax, byte [ebp + eax - 0x34]
add eax, edx
add ecx, eax
movzx edx, cl
pop ecx
rep movsd dword es:[edi], dword [esi]
cmp byte [ebp - 0x1b4], 0x6d
mov al, byte [ebp + edx - 0x17c]
mov dword [ebp - 8], edx
mov byte [ebp + ebx - 0x17c], al
jne 0x428969
mov al, 0x6d
xor esi, esi
test al, al
je 0x428966
cmp byte [ebp + esi - 0x1b4], 0
je 0x428966
mov edx, str.module
mov ecx, 0x42ddd0
call fcn.004250e7
mov al, byte [esi + 0x4329b9]
inc esi
cmp al, byte [ebp + esi - 0x1b4]
je 0x428939
mov edx, dword [ebp - 8]
mov al, byte [ebp - 1]
inc ebx
mov byte [ebp + edx - 0x17c], al
cmp ebx, 0x100
jb 0x4288ed
mov eax, dword [0x435b60]
xor esi, esi
and dword [ebp - 0x28], 0
imul ebx, eax, 0x5e170c58
and dword [ebp - 8], esi
mov dword [ebp - 0x3c], eax
lea eax, [esi + 1]
mov esi, str.RtlDllShutdownInProgress
push 6
pop ecx
lea edi, [ebp - 0x60]
movzx eax, al
rep movsd dword es:[edi], dword [esi]
mov cl, byte [str.module]
mov dword [ebp - 0x24], eax
xor eax, eax
mov dword [ebp - 0x38], eax
movsb byte es:[edi], byte [esi]
cmp cl, byte [ebp - 0x60]
jne 0x4289d9
test cl, cl
je 0x4289d6
cmp byte [ebp + eax - 0x60], 0
je 0x4289d6
mov cl, byte [eax + 0x435b05]
inc eax
cmp cl, byte [ebp + eax - 0x60]
je 0x4289be
mov dword [ebp - 0x38], eax
mov esi, dword [ebp - 0x3c]
mov ecx, esi
call fcn.0042442d
mov ecx, dword [ebp - 0x38]
movzx eax, byte [ebp + ecx - 0x60]
movzx ecx, byte [ecx + str.module]
sub ecx, eax
cmp ecx, 0x1dd8
jbe 0x428a09
lea ebx, [esi + 0x7e5a3fc4]
call fcn.00425446
jmp 0x428a24
mov esi, ebx
mov ecx, str.module
or esi, 0x1b6cdc12
mov dword [ebp - 0x3c], esi
mov dword [0x435b60], esi
call fcn.004253a0
mov esi, dword [ebp - 0x24]
mov eax, dword [ebp - 0x28]
mov cl, byte [ebp + esi - 0x17c]
movzx edx, cl
add eax, edx
movzx edi, al
mov dword [ebp - 0x28], edi
mov al, byte [ebp + edi - 0x17c]
mov byte [ebp + esi - 0x17c], al
mov byte [ebp + edi - 0x17c], cl
movzx eax, byte [ebp + esi - 0x17c]
add eax, edx
mov edx, dword [ebp - 8]
movzx eax, al
mov al, byte [ebp + eax - 0x17c]
xor al, byte [ebp + edx - 0x20]
mov byte [ebp + edx - 0x7c], al
inc edx
mov dword [ebp - 8], edx
cmp edx, 0x18
jb 0x428997
mov esi, str.owner_dead
mov dword [ebp - 8], ebx
lea edi, [ebp - 0x34]
mov byte [ebp - 0x64], 0
mov dword [ebp - 0x20], 0x3c44ef94
mov dword [ebp - 0x1c], 0xf55698c7
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x18], 0xf465e597
mov dword [ebp - 0x14], 0x625e6f5
mov dword [ebp - 0x10], 0xe37765b7
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0xc], 0x2e82751c
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
xor edi, edi
xor eax, eax
mov byte [ebp + eax - 0x17c], al
inc eax
cmp eax, 0x100
jb 0x428abf
xor esi, esi
xor edx, edx
mov bl, byte [ebp + esi - 0x17c]
push 0xa
mov eax, esi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x34]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x17c]
mov byte [ebp + esi - 0x17c], al
inc esi
mov byte [ebp + edi - 0x17c], bl
cmp esi, 0x100
jb 0x428ad0
and dword [ebp - 0x24], 0
lea edi, [ebp - 0x34]
mov ebx, dword [ebp - 8]
mov esi, 0x42c100
xor eax, eax
and dword [ebp - 0x28], eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
mov edi, dword [ebp - 0x24]
inc eax
and ebx, 0x9fd45de4
movzx esi, al
mov dword [ebp - 0x24], esi
mov dword [0x435bf0], ebx
mov cl, byte [ebp + esi - 0x17c]
movzx edx, cl
lea eax, [edx + edi]
movzx edi, al
mov al, byte [ebp + edi - 0x17c]
mov byte [ebp + esi - 0x17c], al
mov byte [ebp + edi - 0x17c], cl
movzx eax, byte [ebp + esi - 0x17c]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x17c]
mov byte [ebp - 1], al
call fcn.004245e5
xor esi, esi
cmp byte [ebp - 0x34], 0x6d
jne 0x428bac
mov al, 0x6d
test al, al
je 0x428bac
cmp byte [ebp + esi - 0x34], 0
je 0x428bac
mov edx, str.module
mov ecx, 0x432720
call fcn.0042483a
mov al, byte [esi + 0x4329b9]
inc esi
cmp al, byte [ebp + esi - 0x34]
je 0x428b85
call fcn.004249a0
movzx eax, byte [ebp + esi - 0x34]
movzx ecx, byte [esi + 0x4329b8]
sub ecx, eax
cmp ecx, 0x1878
jae 0x428bd5
sub ebx, 0x26f5e2b9
mov dword [0x435bf0], ebx
jmp 0x428bef
push ecx
lea eax, [ebx - 0x74e3816b]
mov edx, ebx
push 0x42cc60
mov dword [0x435b60], eax
call fcn.00424fb7
pop ecx
pop ecx
mov ecx, dword [ebp - 0x28]
mov al, byte [ebp + ecx - 0x20]
xor al, byte [ebp - 1]
mov byte [ebp + ecx - 0x60], al
inc ecx
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x28], ecx
cmp ecx, 0x18
jb 0x428b27
lea ecx, [ebp - 0x7c]
mov byte [ebp - 0x48], 0
call fcn.0040b5df
mov esi, eax
xor ecx, ecx
mov edx, esi
call fcn.0040babc
mov ecx, dword [0x435b60]
or ecx, 0x99dd2841
mov dword [ebp - 0x24], eax
mov dword [0x435bf0], ecx
mov ecx, esi
call fcn.0040b8e6
push eax
push 0
push esi
call fcn.0040b587
add esp, 0xc
mov ecx, esi
call fcn.0040a2d2
mov ecx, 0x800
call fcn.0040a2a8
mov edi, dword [0x435b60]
xor ebx, ebx
mov esi, dword [0x435bf0]
mov dword [ebp - 8], eax
cmp byte [str.module], bl
je 0x428c93
mov ecx, edi
call fcn.0042442d
or esi, 0x3670d206
inc ebx
cmp byte [ebx + str.module], 0
jne 0x428c76
mov dword [0x435bf0], esi
mov edx, edi
mov ecx, edi
call fcn.004243cb
mov edi, dword [ebp + 0xc]
cmp edi, ebx
jae 0x428cdb
cmp edi, 0x2440
jne 0x428cca
mov esi, dword [0x435b60]
mov edx, dword [0x435b60]
and esi, 0x40de7648
push ecx
push 0x42d480
call fcn.00424fb7
pop ecx
pop ecx
add esi, 0x37dc8a03
inc edi
cmp edi, ebx
jb 0x428ca3
mov dword [0x435bf0], esi
mov ecx, dword [ebp - 0x24]
call fcn.0040bb58
xor edx, edx
mov ecx, 0x3e8
div ecx
mov ecx, dword [ebp + 0xc]
mov dword [ecx], eax
lea ecx, [ebp - 0x60]
call fcn.0040b5df
mov esi, eax
mov ecx, esi
call fcn.0040b8e6
mov ebx, dword [ebp - 8]
push eax
push esi
push ebx
call fcn.0040b543
mov ecx, esi
call fcn.0040b8e6
push eax
xor edi, edi
push edi
push esi
call fcn.0040b587
mov ecx, esi
call fcn.0040a2d2
mov ecx, ebx
call fcn.0040b8e6
mov edx, dword [ebp + 0x18]
push eax
call fcn.00408921
push dword [ebp + 0x18]
mov edx, dword [ebp - 0x40]
push dword [ebp + 0x14]
mov ecx, dword [ebp - 0x44]
push dword [ebp + 0x10]
push edi
push ebx
push dword [ebp + 8]
call fcn.0040f11f
mov esi, 0x100000
push esi
push edi
push dword [ebp + 0x10]
call fcn.0040b587
add esp, 0x40
push esi
push edi
push dword [ebp + 0x14]
call fcn.0040b587
push esi
push edi
push dword [ebp + 0x18]
call fcn.0040b587
push 0x800
push edi
push ebx
call fcn.0040b587
add esp, 0x24
mov ecx, ebx
call fcn.0040a2d2
pop edi
pop esi
pop ebx
leave
ret