Function at 0x425b00
Capabilities:
Encrypt data using rc4 ksa
Enumerate pe sections

Disassembly:
sub esp, 0x20
push ebx
push ebp
push esi
mov esi, ecx
push edi
mov ecx, dword [esi + 8]
cmp byte [ecx + 1], 0x1f
jae 0x425b7d
mov eax, dword [esi]
mov ebp, dword [eax + 8]
test ebp, ebp
je 0x425b7d
cmp word [ebp], 1
jne 0x425b30
mov al, byte [ebp + 3]
cmp al, 0x20
jae 0x425b7d
inc al
mov byte [ebp + 3], al
jmp 0x425b7d
mov ebx, dword [ebp + 4]
mov al, byte [ecx]
cmp byte [ebx], al
je 0x425b6c
nop dword [eax]
add ebx, 6
cmp byte [ebx], al
jne 0x425b40
mov al, byte [ebx + 1]
cmp al, byte [ebx - 5]
jb 0x425b6c
mov eax, dword [ebx - 6]
mov edx, dword [ebx]
mov di, word [ebx + 4]
mov dword [ebx], eax
mov ax, word [ebx - 2]
mov dword [ebx - 6], edx
mov word [ebx + 4], ax
mov word [ebx - 2], di
add ebx, 0xfffffffa
mov al, byte [ebx + 1]
cmp al, 0x73
jae 0x425b7d
add al, 2
mov byte [ebx + 1], al
add word [ebp + 2], 2
cmp dword [esi + 0xc], 0
jne 0x425bb9
mov ecx, esi
call fcn.004254c0
mov ecx, eax
mov dword [esi], ecx
mov dword [esi + 4], ecx
test ecx, ecx
jne 0x425ba3
pop edi
mov ecx, esi
pop esi
pop ebp
pop ebx
add esp, 0x20
jmp 0x4260c0
mov eax, dword [esi + 8]
mov word [eax + 2], cx
shr ecx, 0x10
mov word [eax + 4], cx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret
mov eax, dword [esi + 8]
mov ebx, dword [esi + 0x40]
mov al, byte [eax]
mov byte [ebx], al
inc ebx
mov dword [esp + 0x18], ebx
mov dword [esi + 0x40], ebx
cmp ebx, dword [esi + 0x44]
jb 0x425bde
pop edi
mov ecx, esi
pop esi
pop ebp
pop ebx
add esp, 0x20
jmp 0x4260c0
mov ecx, dword [esi + 8]
movzx edx, word [ecx + 4]
movzx eax, word [ecx + 2]
shl edx, 0x10
or edx, eax
je 0x425c28
cmp edx, ebx
ja 0x425c0f
mov ecx, esi
call fcn.004254c0
mov edx, eax
test edx, edx
jne 0x425c0f
pop edi
mov ecx, esi
pop esi
pop ebp
pop ebx
add esp, 0x20
jmp 0x4260c0
add dword [esi + 0xc], 0xffffffff
jne 0x425c37
mov eax, dword [esi + 4]
xor ecx, ecx
cmp eax, dword [esi]
mov dword [esp + 0x18], edx
setne cl
sub dword [esi + 0x40], ecx
jmp 0x425c37
mov eax, ebx
mov word [ecx + 2], bx
shr eax, 0x10
mov word [ecx + 4], ax
mov edx, dword [esi]
mov eax, dword [esi]
mov edi, dword [esi + 4]
mov dword [esp + 0x2c], eax
mov dword [esi], edx
mov dword [esi + 4], edx
cmp edi, eax
je 0x425bb1
movzx ebp, word [eax]
movzx ecx, word [eax + 2]
mov eax, dword [esi + 8]
mov dword [esp + 0x1c], ebp
movzx eax, byte [eax + 1]
sub ecx, eax
sub ecx, ebp
inc ecx
mov dword [esp + 0x28], ecx
nop dword [eax + eax]
movzx ebx, word [edi]
mov dword [esp + 0x10], ebx
cmp ebx, 1
je 0x425d46
test bl, 1
jne 0x425d15
shr ebx, 1
movzx ecx, byte [ebx + esi + 0x8f]
movzx eax, byte [ebx + esi + 0x90]
mov dword [esp + 0x20], ecx
cmp ecx, eax
je 0x425d11
lea edx, [ecx + 1]
mov ecx, esi
call fcn.004253e0
mov dword [esp + 0x24], eax
test eax, eax
je 0x425b95
mov ecx, dword [edi + 4]
mov ebp, eax
mov dword [esp + 0x14], ecx
mov edx, eax
add ecx, 8
sub ebp, dword [esp + 0x14]
nop dword [eax + eax]
mov eax, dword [ecx - 8]
lea edx, [edx + 0xc]
mov dword [edx - 0xc], eax
lea ecx, [ecx + 0xc]
mov eax, dword [ecx - 0x10]
mov dword [edx - 8], eax
mov eax, dword [ecx - 0xc]
mov dword [ecx + ebp - 0xc], eax
sub ebx, 1
jne 0x425cd0
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x14]
mov ebp, dword [esp + 0x1c]
mov eax, dword [esi + edx*4 + 0x110]
mov dword [ecx], eax
mov eax, dword [esp + 0x24]
mov dword [esi + edx*4 + 0x110], ecx
mov dword [edi + 4], eax
mov ebx, dword [esp + 0x10]
movzx edx, word [edi + 2]
lea eax, [ebx*8]
cmp eax, edx
lea eax, [ebx*4]
sbb ecx, ecx
inc ecx
cmp ebp, eax
sbb eax, eax
inc eax
and ecx, eax
lea eax, [ebx + ebx]
cmp eax, ebp
sbb eax, eax
neg eax
add eax, edx
lea edx, [eax + ecx*2]
jmp 0x425dcc
mov edx, dword [esi + 0x110]
test edx, edx
je 0x425d5a
mov eax, dword [edx]
mov dword [esi + 0x110], eax
jmp 0x425d83
movzx eax, byte [esi + 0x68]
mov edx, dword [esi + 0x38]
lea ecx, [eax + eax*2]
mov eax, dword [esi + 0x3c]
shl ecx, 2
sub eax, edx
cmp eax, ecx
jb 0x425d78
lea eax, [edx + ecx]
mov dword [esi + 0x38], eax
jmp 0x425d83
xor edx, edx
mov ecx, esi
call fcn.00425430
mov edx, eax
test edx, edx
je 0x425b95
movzx ebx, byte [edi + 3]
mov cl, byte [edi + 2]
mov byte [edx], cl
movzx eax, word [edi + 4]
mov word [edx + 2], ax
movzx eax, word [edi + 6]
mov word [edx + 4], ax
mov dword [edi + 4], edx
cmp ebx, 0x1e
jae 0x425db0
add ebx, ebx
jmp 0x425db5
mov ebx, 0x78
mov byte [edx + 1], bl
mov eax, 3
cmp eax, ebp
sbb edx, edx
neg edx
add edx, dword [esi + 0x10]
add edx, ebx
mov ebx, dword [esp + 0x10]
mov eax, dword [edi + 4]
lea ecx, [ebx + ebx*2]
lea ecx, [eax + ecx*2]
mov dword [esp + 0x14], ecx
lea eax, [edx + 6]
mov ecx, dword [esi + 8]
movzx ebp, byte [ecx + 1]
imul ebp, eax
mov al, byte [ecx]
mov ecx, dword [esp + 0x14]
add ebp, ebp
mov byte [ecx], al
lea eax, [ebx + 1]
mov word [edi], ax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x24], ebp
mov ebp, dword [esp + 0x28]
mov ebx, dword [esp + 0x24]
add ebp, edx
mov word [ecx + 2], ax
shr eax, 0x10
mov word [ecx + 4], ax
lea eax, [ebp*2]
add eax, ebp
add eax, eax
cmp ebx, eax
jae 0x425e3c
lea eax, [ebp*4]
cmp ebx, eax
sbb ecx, ecx
inc ecx
cmp ebp, ebx
sbb eax, eax
neg eax
inc eax
add eax, ecx
add edx, 3
jmp 0x425e70
mov eax, ebp
shl eax, 4
sub eax, ebp
cmp ebx, eax
lea eax, [ebp*2]
sbb ecx, ecx
add eax, ebp
shl eax, 2
inc ecx
cmp ebx, eax
sbb eax, eax
inc eax
add ecx, eax
lea eax, [ebp*8]
add eax, ebp
cmp ebx, eax
sbb eax, eax
add ecx, 4
inc eax
add eax, ecx
add edx, eax
mov ecx, dword [esp + 0x14]
mov word [edi + 2], dx
mov byte [ecx + 1], al
mov edi, dword [edi + 8]
cmp edi, dword [esp + 0x2c]
je 0x425bb1
mov ebp, dword [esp + 0x1c]
jmp 0x425c70
push ecx
push esi
push edi
mov edi, ecx
push 0x98
push 0
mov dword [esp + 0x10], edi
lea eax, [edi + 0x110]
push eax
call sub.msvcrt.dll_memset
mov eax, dword [edi + 0x30]
add esp, 0xc
add eax, dword [edi + 0x34]
mov ecx, dword [edi + 0x28]
mov dword [edi + 0x40], eax
mov dword [edi + 0x2c], 0
mov dword [edi + 0x14], 0
lea esi, [ecx + eax]
shr ecx, 3
mov eax, 0xaaaaaaab
mul ecx
mov ecx, 0xc
shr edx, 3
imul eax, edx, 0x54
mov edx, esi
sub edx, eax
mov eax, dword [edi + 0x18]
cmp eax, ecx
mov dword [edi + 0xc], eax
mov dword [edi + 0x44], edx
cmovb ecx, eax
mov dword [edi + 8], edx
or eax, 0xffffffff
sub eax, ecx
lea ecx, [esi - 0xc]
mov dword [edi + 0x24], eax
mov dword [edi + 0x20], eax
lea eax, [edx + 0x600]
mov dword [edi + 0x38], eax
xor eax, eax
mov dword [edi + 0x3c], ecx
mov dword [edi], ecx
mov dword [edi + 4], ecx
mov dword [ecx + 4], edx
add edx, 2
mov dword [ecx], 0x1010100
mov dword [ecx + 8], 0
nop word [eax + eax]
mov byte [edx - 2], al
lea edx, [edx + 6]
xor ecx, ecx
mov byte [edx - 7], 1
inc eax
mov dword [edx - 6], ecx
cmp eax, 0x100
jb 0x426160
push ebx
push ebp
xor ebx, ebx
lea ebp, [edi + 0x9fc]
mov esi, ebp
xor edi, edi
nop word [eax + eax]
movzx eax, word [edi + 0x42d920]
lea ecx, [ebx + 2]
xor edx, edx
div ecx
mov ecx, 0x4000
sub ecx, eax
xor eax, eax
movzx ecx, cx
nop word [eax + eax]
mov word [esi + eax*2], cx
add eax, 8
cmp eax, 0x40
jb 0x4261b0
add edi, 2
add esi, 2
cmp edi, 0x10
jb 0x426190
inc ebx
sub ebp, 0xffffff80
cmp ebx, 0x80
jb 0x426181
mov edi, dword [esp + 0x10]
mov edx, 0x50
pop ebp
pop ebx
lea esi, [edi + 0x3bc]
mov eax, esi
mov ecx, 0x10
nop dword [eax + eax]
mov word [eax], dx
lea eax, [eax + 4]
mov word [eax - 2], 0x403
sub ecx, 1
jne 0x4261f0
add edx, 0x28
add esi, 0x40
cmp edx, 0x438
jb 0x4261e4
mov dword [edi + 0x3b8], 0x40070000
pop edi
pop esi
pop ecx
ret