Function at 0x4253b4
Capabilities:
Encrypt data using rc4 ksa
Resolve function by parsing pe exports

Disassembly:
push ebx
push esi
push edi
push ebp
push eax
mov eax, 4
add esp, 0xfffff004
push eax
dec eax
jne 0x4253be
mov eax, dword [esp + 0x4000]
add esp, 0xfffff050
mov ebx, eax
mov eax, dword [ebx + 0x244]
call fcn.0064ae74
mov esi, eax
mov eax, dword [0x6691b4]
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0x10]
call fcn.00624538
push eax
lea edx, [esp + 0x4fa0]
mov eax, esi
call fcn.00648770
lea eax, [esp + 0x4fa0]
push eax
mov eax, esi
call fcn.00648794
push eax
call sub.user32.dll_FillRect
mov eax, dword [0x6698c8]
test byte [eax], 8
setne al
mov byte [esp + 0x24], al
mov eax, dword [0x6698c8]
and dword [eax], 0xfffffff7
call fcn.00541d4c
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 0x174]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x28]
call fcn.0055ff90
lea edx, [esp + 0x5c]
mov eax, dword [esp + 0x28]
call fcn.0055e56c
mov edx, 0x19
mov eax, dword [esp + 0x28]
call fcn.0055fafc
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x78], eax
mov eax, dword [ebx + 0x244]
mov edx, dword [eax]
call dword [edx + 0x28]
mov edx, eax
mov eax, dword [esp + 0x28]
call fcn.0055fafc
mov dword [esp + 0x5c], eax
lea edx, [esp + 0xcc]
mov eax, dword [esp + 0x28]
call fcn.005c0e14
lea eax, [esp + 0xcc]
push eax
lea ecx, [esp + 0x60]
xor edx, edx
mov eax, dword [esp + 0x2c]
call fcn.005c7adc
mov dword [esp + 4], 2
mov dword [esp + 8], 1
call fcn.0064dfa0
mov dword [esp], eax
mov eax, dword [esp + 4]
dec eax
test eax, eax
jl 0x425657
inc eax
mov dword [esp + 0x30], eax
xor edi, edi
lea eax, [esp + 0xec]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x58]
mov edx, 0x2758
call fcn.00658544
mov eax, dword [esp + 0x58]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x34]
mov dword [eax + 0x10], 0x1388
mov eax, dword [esp + 0x34]
mov dword [eax + 0xcc], 0xff000000
mov eax, dword [ebx + 0x244]
mov edx, dword [eax]
call dword [edx + 0x1c]
sub eax, 0x32
cdq
idiv dword [esp + 4]
mov edx, eax
mov eax, dword [esp + 0x28]
call fcn.0055fafc
neg eax
mov edx, dword [esp + 0x34]
mov dword [edx + 0xc], eax
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 8]
mov dword [edx + 0xd8], eax
mov esi, eax
dec esi
cmp esi, 0
jl 0x425636
imul eax, esi, 0x27
mov edx, dword [esp + 0x34]
lea eax, [edx + eax*4 + 0xdc]
mov dword [eax], 0x80000000
mov edx, dword [ebx + 0x1b0]
mov edx, dword [edx + 0x188]
mov edx, dword [edx + 0x160]
mov dword [eax + 0x88], edx
test edx, edx
jge 0x4255aa
mov dword [eax + 0x88], 0xff000000
mov byte [eax + 0x15], 1
test edi, edi
jne 0x4255dc
push esi
push edi
lea esi, [ebx + 0x1d0]
lea edi, [eax + 0x34]
mov ecx, 7
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
push esi
push edi
lea esi, [ebx + 0x224]
lea edi, [eax + 0x6c]
mov ecx, 7
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
jmp 0x425604
push esi
push edi
lea esi, [ebx + 0x224]
lea edi, [eax + 0x34]
mov ecx, 7
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
push esi
push edi
lea esi, [ebx + 0x208]
lea edi, [eax + 0x6c]
mov ecx, 7
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
push esi
push edi
lea esi, [ebx + 0x1b4]
lea edi, [eax + 0x18]
mov ecx, 7
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
push esi
push edi
lea esi, [ebx + 0x1ec]
lea edi, [eax + 0x50]
mov ecx, 7
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
dec esi
cmp esi, 0xffffffff
jne 0x425570
mov eax, dword [esp + 0x58]
mov edx, eax
mov eax, dword [esp]
call fcn.0064e1f0
inc edi
add dword [esp + 0x58], 0x2758
dec dword [esp + 0x30]
jne 0x425500
lea eax, [esp + 8]
push eax
mov eax, dword [esp + 4]
push eax
lea ecx, [esp + 0xc]
mov dl, 0x3d
mov eax, dword [esp + 0x30]
call fcn.005c7af4
mov eax, dword [esp]
call fcn.0064e5c0
call fcn.0064d970
mov esi, eax
mov edi, 0xfffffffc
mov edx, 0x20
mov eax, esi
call fcn.0064dbd8
inc edi
jne 0x425684
mov edx, 0xb6
mov eax, esi
call fcn.0064dbd8
mov eax, dword [esp + 4]
dec eax
test eax, eax
jl 0x4256d8
inc eax
mov dword [esp + 0x30], eax
xor edi, edi
push 0
mov al, byte [0x425b50]
push eax
xor ecx, ecx
mov edx, edi
mov eax, dword [esp + 0x30]
call fcn.005bb588
mov ecx, esi
mov dl, 0xd
mov eax, dword [esp + 0x28]
call fcn.005c7acc
inc edi
dec dword [esp + 0x30]
jne 0x4256af
mov eax, esi
call fcn.004028c0
mov eax, dword [ebx + 0x244]
mov edx, dword [eax]
call dword [edx + 0x1c]
push eax
mov eax, dword [ebx + 0x244]
mov edx, dword [eax]
call dword [edx + 0x28]
mov edx, eax
mov eax, dword [esp + 0x30]
pop ecx
call fcn.0044bcb0
mov eax, dword [esp + 0x28]
mov byte [eax + 0x403], 1
mov eax, dword [esp + 0x28]
call fcn.005b4f84
mov edx, dword [0x669448]
mov eax, dword [esp + 0x28]
call fcn.0055c38c
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 0xb0]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax]
mov eax, dword [eax + 0x30]
call fcn.0055309c
lea ecx, [esp + 0x38]
mov edx, dword [0x669448]
call fcn.00552fd4
lea eax, [ebx + 0x248]
mov edx, dword [esp + 0x38]
sub edx, 4
dec edx
mov dword [eax], edx
mov edx, dword [eax]
add edx, 9
mov dword [eax + 8], edx
mov edx, dword [esp + 0x3c]
mov dword [eax + 4], edx
lea eax, [ebx + 0x258]
mov edx, dword [esp + 0x38]
mov dword [eax], edx
mov edx, dword [esp + 0x3c]
sub edx, 4
dec edx
mov dword [eax + 4], edx
mov edx, dword [eax + 4]
add edx, 9
mov dword [eax + 0xc], edx
mov eax, dword [esp + 0x3c]
mov dword [ebx + 0x26c], eax
mov eax, dword [esp + 0x38]
mov dword [ebx + 0x278], eax
mov eax, dword [esp + 8]
inc eax
imul dword [esp + 4]
mov edx, dword [esp + 0x28]
mov edx, dword [edx + 0xb0]
mov edx, dword [edx + 0x1c]
mov eax, dword [edx + eax*4 - 8]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax]
mov eax, dword [eax + 0x30]
call fcn.0055309c
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x40]
lea esi, [eax + 0x48]
mov edx, dword [esi + 0xc]
sub edx, dword [esi + 4]
mov eax, dword [esi + 8]
sub eax, dword [esi]
lea ecx, [esp + 0x4fac]
call fcn.0064d660
lea edx, [esp + 0x4fac]
lea ecx, [esp + 0x44]
mov eax, dword [esp + 0x40]
call fcn.00552fd4
mov eax, dword [esp + 0x48]
mov dword [ebx + 0x254], eax
mov eax, dword [esp + 0x44]
mov dword [ebx + 0x260], eax
lea eax, [ebx + 0x268]
mov edx, dword [esp + 0x44]
sub edx, 4
dec edx
mov dword [eax], edx
mov edx, dword [eax]
add edx, 9
mov dword [eax + 8], edx
mov edx, dword [esp + 0x48]
mov dword [eax + 0xc], edx
lea eax, [ebx + 0x278]
mov edx, dword [esp + 0x44]
mov dword [eax + 8], edx
mov edx, dword [esp + 0x48]
sub edx, 4
dec edx
mov dword [eax + 4], edx
mov edx, dword [eax + 4]
add edx, 9
mov dword [eax + 0xc], edx
cmp dword [esp + 4], 1
jne 0x42586e
lea eax, [ebx + 0x288]
call fcn.00652e88
jmp 0x4258ad
lea eax, [ebx + 0x288]
mov edx, dword [ebx + 0x248]
add edx, 4
mov dword [eax], edx
mov edx, dword [ebx + 0x270]
sub edx, 4
mov dword [eax + 8], edx
mov edx, dword [ebx + 0x24c]
add edx, dword [ebx + 0x254]
sub edx, 9
sar edx, 1
jns 0x4258a1
adc edx, 0
mov dword [eax + 4], edx
mov edx, dword [eax + 4]
add edx, 9
mov dword [eax + 0xc], edx
mov eax, dword [esp + 0x28]
mov byte [eax + 0x40d], 1
mov eax, dword [esp + 0x28]
mov byte [eax + 0x409], 1