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

Disassembly:
sub esp, 0x88
push ebx
mov ebx, dword [esp + 0x90]
mov eax, dword [ebx + 4]
push ebp
push esi
shr eax, 1
push edi
mov dword [esp + 0x34], eax
je 0x485ca2
xor edi, edi
cmp eax, edi
mov dword [esp + 0x5c], edi
mov dword [esp + 0x60], edi
mov dword [esp + 0x64], edi
mov dword [esp + 0x68], edi
jbe 0x48532f
mov ecx, dword [ebx + 4]
mov eax, dword [ebx]
shr ecx, 1
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x64]
cmp dword [esp + 0x5c], ecx
jge 0x4852d1
cmp edi, dword [esp + 0x68]
jl 0x4852ea
mov edx, dword [eax]
mov ecx, dword [eax + 8]
mov edi, dword [eax + 4]
mov dword [esp + 0x5c], edx
mov edx, dword [eax + 0xc]
mov dword [esp + 0x64], ecx
mov dword [esp + 0x68], edx
jmp 0x485321
mov ecx, dword [eax]
mov esi, dword [eax + 8]
cmp ecx, esi
jge 0x485321
mov edx, dword [eax + 4]
mov ebp, dword [eax + 0xc]
cmp edx, ebp
jge 0x485321
cmp dword [esp + 0x5c], ecx
jle 0x485307
mov dword [esp + 0x5c], ecx
cmp edi, edx
jle 0x48530d
mov edi, edx
cmp dword [esp + 0x64], esi
jge 0x485317
mov dword [esp + 0x64], esi
cmp dword [esp + 0x68], ebp
jge 0x485321
mov dword [esp + 0x68], ebp
add eax, 0x10
sub dword [esp + 0x3c], 1
jne 0x4852c1
mov dword [esp + 0x60], edi
cmp dword [esp + 0x34], 1
je 0x485c27
mov ebp, dword [esp + 0x64]
sub ebp, dword [esp + 0x5c]
mov eax, dword [esp + 0x68]
sub eax, edi
mov ecx, ebp
imul ecx, eax
cmp ecx, 0x1388
mov dword [esp + 0x58], eax
jl 0x485c27
xor esi, esi
xor edi, edi
mov dword [esp + 0x94], esi
mov eax, 1
lea ecx, [ecx]
add eax, eax
cmp eax, 0x100
jbe 0x485370
fldz
fstp dword [esp + 0x34]
mov ecx, dword [esp + 0x34]
shr ecx, 0x17
and ecx, 0xff
sub ecx, 0x7f
js 0x48539a
mov edx, 1
shl edx, cl
jmp 0x48539c
xor edx, edx
cmp edx, eax
je 0x485509
shl eax, 4
push eax
push 0
call fcn.0045d790
add esp, 8
test eax, eax
mov dword [esp + 0x70], eax
je 0x485509
mov edx, dword [esp + 0x94]
mov dword [eax], edi
mov dword [eax + 4], esi
xor ecx, ecx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
mov esi, eax
lea edi, [eax + 0x10]
mov eax, dword [esp + 0x58]
add ebp, 0xf
add eax, 0xf
mov ecx, 0x3fc
shr ebp, 4
shr eax, 4
rep movsd dword es:[edi], dword [esi]
test dword [ebx + 4], 0xfffffffe
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x48], eax
mov dword [esp + 0x6c], 0
jbe 0x48562d
mov dword [esp + 0x44], 0
mov eax, dword [esp + 0x9c]
mov eax, dword [eax]
add eax, dword [esp + 0x44]
mov ecx, dword [eax]
mov esi, dword [eax + 8]
cmp ecx, esi
mov edi, dword [eax + 4]
mov ebx, dword [eax + 0xc]
mov dword [esp + 0x24], ecx
jge 0x485609
cmp edi, ebx
jge 0x485609
mov ecx, dword [esp + 0x5c]
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0x24]
neg eax
add edi, eax
add ebx, eax
neg ecx
add edx, ecx
mov eax, edx
mov dword [esp + 0x24], edx
cdq
idiv ebp
mov dword [esp + 0x28], edi
add esi, ecx
mov dword [esp + 0x2c], esi
mov dword [esp + 0x30], ebx
mov dword [esp + 0x78], eax
mov eax, edi
mov edi, dword [esp + 0x48]
cdq
idiv edi
mov ecx, eax
lea eax, [esi + ebp - 1]
cdq
idiv ebp
mov dword [esp + 0x80], eax
lea eax, [ebx + edi - 1]
cdq
idiv edi
cmp ecx, eax
jge 0x485609
mov edx, dword [esp + 0x78]
mov ebx, edx
add edx, 1
imul ebx, ebp
mov esi, ecx
imul edx, ebp
imul esi, edi
mov edi, ecx
shl edi, 8
add edi, dword [esp + 0x70]
sub eax, ecx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x34], edx
mov dword [esp + 0x40], esi
mov dword [esp + 0x54], edi
mov dword [esp + 0x38], eax
jmp 0x4854d0
mov ecx, dword [esp + 0x48]
lea eax, [esi + ecx]
mov ecx, dword [esp + 0x80]
cmp dword [esp + 0x78], ecx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x50], eax
jge 0x4855ec
mov edx, dword [esp + 0x78]
mov eax, edx
shl eax, 4
sub ecx, edx
lea eax, [eax + edi + 8]
mov dword [esp + 0x3c], ecx
jmp 0x485524
mov eax, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x88
ret
mov esi, dword [esp + 0x40]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x24]
cmp edx, ebx
mov edi, dword [esp + 0x50]
mov ecx, esi
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x94], edi
jge 0x485543
mov edx, ebx
mov ebx, dword [esp + 0x28]
cmp ecx, ebx
jge 0x48554d
mov ecx, ebx
mov ebx, dword [esp + 0x2c]
cmp esi, ebx
jle 0x485557
mov esi, ebx
mov ebx, dword [esp + 0x30]
cmp edi, ebx
jle 0x485568
mov edi, ebx
mov dword [esp + 0x94], edi
mov ebx, dword [eax - 8]
cmp ebx, dword [eax]
jge 0x485582
mov edi, dword [eax - 4]
cmp edi, dword [eax + 4]
jl 0x48558f
mov edi, dword [esp + 0x94]
mov ebp, dword [esp + 0x4c]
mov dword [eax - 8], edx
mov dword [eax - 4], ecx
mov dword [eax], esi
mov dword [eax + 4], edi
jmp 0x4855ca
cmp edx, esi
jge 0x4855c6
mov ebp, dword [esp + 0x94]
cmp ecx, ebp
jge 0x4855c6
cmp ebx, edx
jg 0x4855a4
mov edx, ebx
cmp edi, ecx
mov dword [eax - 8], edx
jg 0x4855ad
mov ecx, edi
mov dword [eax - 4], ecx
mov ecx, dword [eax]
cmp ecx, esi
jl 0x4855b8
mov esi, ecx
mov ecx, dword [eax + 4]
cmp ecx, ebp
mov dword [eax], esi
jge 0x4855c3
mov ecx, ebp
mov dword [eax + 4], ecx
mov ebp, dword [esp + 0x4c]
add dword [esp + 0x14], ebp
add dword [esp + 0x1c], ebp
add eax, 0x10
sub dword [esp + 0x3c], 1
jne 0x485520
mov edx, dword [esp + 0x34]
mov ebx, dword [esp + 0x58]
mov edi, dword [esp + 0x54]
mov esi, dword [esp + 0x50]
add edi, 0x100
sub dword [esp + 0x38], 1
mov dword [esp + 0x54], edi
mov dword [esp + 0x40], esi
jne 0x4854d0
mov ecx, dword [esp + 0x9c]
mov eax, dword [esp + 0x6c]
mov edx, dword [ecx + 4]
add dword [esp + 0x44], 0x10
add eax, 1
shr edx, 1
cmp eax, edx
mov dword [esp + 0x6c], eax
jb 0x485413
mov esi, dword [esp + 0x9c]
mov eax, dword [esi + 4]
mov ecx, eax
mov edi, 1
mov edx, eax
and ecx, edi
shr edx, 1
je 0x4856ad
test ecx, ecx
je 0x48565b
mov eax, dword [esi]
push 0
push eax
call fcn.0045d790
add esp, 8
mov dword [esi], eax
jmp 0x4856aa
mov ecx, edx
test ecx, ecx
mov dword [esp + 0x34], ecx
fild dword [esp + 0x34]
jge 0x48566f
fadd dword [0x6c0a38]
fstp dword [esp + 0x34]
mov ecx, dword [esp + 0x34]
shr ecx, 0x17
and ecx, 0xff
sub ecx, 0x7f
js 0x48568b
mov eax, edi
shl eax, cl
jmp 0x48568d
xor eax, eax
cmp eax, edx
jae 0x485693
add eax, eax
cmp eax, edi
je 0x4856aa
mov edx, dword [esi]
push 0x10
push edx
call fcn.0045d790
add esp, 8
test eax, eax
mov dword [esi], eax
je 0x4856ad
and dword [esi + 4], edi
mov dword [esp + 0x48], 0
mov eax, dword [esp + 0x48]
shl eax, 8
add eax, dword [esp + 0x70]
mov dword [esp + 0x38], 0
mov dword [esp + 0x6c], eax
lea esp, [esp]
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x6c]
shl eax, 4
mov edx, dword [ecx + eax]
add ecx, eax
cmp edx, dword [ecx + 8]
jge 0x485be5
mov eax, dword [ecx + 4]
cmp eax, dword [ecx + 0xc]
jge 0x485be5
mov ebx, dword [esp + 0x38]
xor ebp, ebp
cmp ebx, 0x10
mov dword [esp + 0x24], ebp
mov dword [esp + 0x28], ebp
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x30], ebp
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x4c], ebp
jae 0x48584e
add ecx, 8
nop
mov esi, dword [ecx - 8]
mov edi, dword [ecx]
cmp esi, edi
jge 0x48584e
mov eax, dword [ecx - 4]
mov edx, dword [ecx + 4]
cmp eax, edx
jge 0x48584e
sub edx, eax
mov eax, dword [esp + 0x4c]
sub edi, esi
mov esi, dword [esp + 0x28]
imul edx, edi
mov edi, dword [esp + 0x24]
add edx, eax
cmp edi, ebp
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x30]
mov eax, ebp
jge 0x485768
mov ebx, esi
cmp ebx, edx
jl 0x485775
mov ebp, dword [esp + 0x2c]
mov edi, dword [ecx - 8]
mov esi, dword [ecx - 4]
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
jmp 0x48579e
mov ebx, dword [ecx - 8]
cmp dword [esp + 0x24], ebx
jle 0x485780
mov edi, ebx
mov ebx, dword [ecx - 4]
cmp esi, ebx
jle 0x485789
mov esi, ebx
mov ebx, dword [ecx]
cmp eax, ebx
jge 0x485791
mov eax, ebx
mov ebx, dword [ecx + 4]
cmp edx, ebx
mov ebp, dword [esp + 0x2c]
jge 0x48579e
mov edx, ebx
sub edx, esi
mov esi, dword [esp + 0x34]
sub eax, edi
imul eax, edx
cdq
idiv esi
cmp eax, 1
jg 0x485843
mov edx, dword [esp + 0x24]
cmp edx, ebp
mov dword [esp + 0x4c], esi
jge 0x4857cd
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x30]
cmp esi, edi
jl 0x4857ea
mov edx, dword [ecx - 8]
mov eax, dword [ecx - 4]
mov ebp, dword [ecx]
mov dword [esp + 0x24], edx
mov edx, dword [ecx + 4]
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x30], edx
jmp 0x485817
mov eax, dword [ecx - 8]
cmp edx, eax
jle 0x4857f5
mov dword [esp + 0x24], eax
mov eax, dword [ecx - 4]
cmp esi, eax
jle 0x485800
mov dword [esp + 0x28], eax
mov eax, dword [ecx]
cmp ebp, eax
jge 0x48580c
mov ebp, eax
mov dword [esp + 0x2c], ebp
mov eax, dword [ecx + 4]
cmp edi, eax
jge 0x485817
mov dword [esp + 0x30], eax
mov ebx, dword [esp + 0x38]
xor eax, eax
mov dword [ecx - 8], eax
xor edx, edx
xor esi, esi
mov dword [ecx - 4], edx
xor edi, edi
mov dword [ecx], esi
add ebx, 1
mov dword [ecx + 4], edi
add ecx, 0x10
cmp ebx, 0x10
mov dword [esp + 0x38], ebx
jb 0x485720
jmp 0x48584e
mov ebx, dword [esp + 0x38]
sub ebx, 1
mov dword [esp + 0x38], ebx
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x6c]
add eax, ebx
add ecx, 0x100
cdq
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x48]
sub eax, edx
sar eax, 1
add ecx, 1
cmp ecx, 0x10
mov dword [esp + 0x58], ebx
mov dword [esp + 0x40], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x34], ecx
jae 0x485b66
xor ecx, ecx
cmp eax, ecx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x50], ecx
mov edi, eax
jl 0x485945
mov ecx, dword [esp + 0x44]
mov edx, eax
shl edx, 4
lea edx, [edx + ecx + 4]
mov esi, dword [edx - 4]
mov ecx, dword [edx + 4]
cmp esi, ecx
jge 0x485945
mov ebx, dword [edx]
mov esi, dword [edx + 8]
cmp ebx, esi
jge 0x485945
mov ebx, dword [esp + 0x1c]
cmp dword [esp + 0x14], ebx
jge 0x4858df
mov ebx, dword [esp + 0x20]
cmp dword [esp + 0x18], ebx
jl 0x4858fa
mov ebx, dword [edx - 4]
mov dword [esp + 0x14], ebx
mov ebx, dword [edx]
mov dword [esp + 0x18], ebx
mov ebx, ecx
mov dword [esp + 0x1c], ebx
mov ebx, esi
mov dword [esp + 0x20], ebx
jmp 0x485927
mov ebx, dword [edx - 4]
cmp dword [esp + 0x14], ebx
jle 0x485907
mov dword [esp + 0x14], ebx
mov ebx, dword [edx]
cmp dword [esp + 0x18], ebx
jle 0x485913
mov dword [esp + 0x18], ebx
cmp dword [esp + 0x1c], ecx
jge 0x48591d
mov dword [esp + 0x1c], ecx
cmp dword [esp + 0x20], esi
jge 0x485927
mov dword [esp + 0x20], esi
sub ecx, dword [edx - 4]
sub esi, dword [edx]
mov dword [esp + 0x40], edi
imul ecx, esi
add dword [esp + 0x50], ecx
sub edi, 1
sub edx, 0x10
test edi, edi
jge 0x4858b4
lea esi, [eax + 1]
cmp esi, 0x10
jge 0x4859ee
mov eax, dword [esp + 0x44]
mov edx, esi
shl edx, 4
lea ecx, [edx + eax + 4]
mov edx, dword [ecx - 4]
mov eax, dword [ecx + 4]
cmp edx, eax
jge 0x4859ee
mov edi, dword [ecx]
mov edx, dword [ecx + 8]
cmp edi, edx
jge 0x4859ee
mov ebx, dword [esp + 0x1c]
cmp dword [esp + 0x14], ebx
jge 0x485989
mov ebx, dword [esp + 0x20]
cmp dword [esp + 0x18], ebx
jl 0x4859a4
mov ebx, dword [ecx - 4]
mov dword [esp + 0x14], ebx
mov ebx, edi
mov dword [esp + 0x18], ebx
mov ebx, eax
mov dword [esp + 0x1c], ebx
mov ebx, edx
mov dword [esp + 0x20], ebx
jmp 0x4859cf
mov ebx, dword [ecx - 4]
cmp dword [esp + 0x14], ebx
jle 0x4859b1
mov dword [esp + 0x14], ebx
cmp dword [esp + 0x18], edi
jle 0x4859bb
mov dword [esp + 0x18], edi
cmp dword [esp + 0x1c], eax
jge 0x4859c5
mov dword [esp + 0x1c], eax
cmp dword [esp + 0x20], edx
jge 0x4859cf
mov dword [esp + 0x20], edx
sub eax, dword [ecx - 4]
sub edx, edi
imul eax, edx
add dword [esp + 0x50], eax
mov dword [esp + 0x54], esi
add esi, 1
add ecx, 0x10
cmp esi, 0x10
jl 0x48595e
mov edi, dword [esp + 0x14]
mov ebp, dword [esp + 0x1c]
cmp edi, ebp
jge 0x485b66
mov ebx, dword [esp + 0x18]
cmp ebx, dword [esp + 0x20]
jge 0x485b66
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x2c]
cmp esi, eax
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x30]
jge 0x485a24
cmp edx, ecx
jl 0x485a30
mov ecx, dword [esp + 0x20]
mov esi, edi
mov edx, ebx
mov eax, ebp
jmp 0x485a4c
cmp esi, edi
jle 0x485a36
mov esi, edi
cmp edx, ebx
jle 0x485a3c
mov edx, ebx
cmp eax, ebp
jge 0x485a42
mov eax, ebp
mov edi, dword [esp + 0x20]
cmp ecx, edi
jge 0x485a4c
mov ecx, edi
mov edi, dword [esp + 0x4c]
mov ebx, dword [esp + 0x50]
sub eax, esi
sub ecx, edx
imul eax, ecx
cdq
lea ebp, [ebx + edi]
idiv ebp
cmp eax, 1
jg 0x485b66
mov ecx, dword [esp + 0x24]
mov esi, dword [esp + 0x2c]
cmp ecx, esi
jge 0x485a82
mov edx, dword [esp + 0x28]
mov edi, dword [esp + 0x30]
cmp edx, edi
jl 0x485aa4
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], ecx
jmp 0x485ad4
mov eax, dword [esp + 0x14]
cmp ecx, eax
jle 0x485ab0
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x18]
cmp edx, eax
jle 0x485abc
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x1c]
cmp esi, eax
jge 0x485ac8
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x20]
cmp edi, eax
jge 0x485ad4
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x54]
cmp eax, edx
jg 0x485b1b
mov ecx, dword [esp + 0x54]
sub ecx, dword [esp + 0x40]
shl eax, 4
add eax, dword [esp + 0x44]
xor edx, edx
xor esi, esi
xor edi, edi
xor ebx, ebx
add ecx, 1
lea ebx, [ebx]
mov dword [eax], edx
mov dword [eax + 4], esi
mov dword [eax + 8], edi
mov dword [eax + 0xc], ebx
add eax, 0x10
sub ecx, 1
jne 0x485b00
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x3c]
cmp ecx, eax
mov dword [esp + 0x4c], ebp
jle 0x485b2d
mov ecx, eax
mov dword [esp + 0x3c], ecx
mov eax, dword [esp + 0x58]
cmp eax, edx
jle 0x485b3b
mov eax, edx
mov dword [esp + 0x58], eax
add dword [esp + 0x44], 0x100
add eax, ecx
mov ecx, dword [esp + 0x34]
cdq
sub eax, edx
sar eax, 1
add ecx, 1
cmp ecx, 0x10
mov dword [esp + 0x40], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x34], ecx
jb 0x485887
mov eax, dword [esp + 0x5c]
mov edi, dword [esp + 0x24]
mov ebx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x28]
mov esi, dword [esp + 0x9c]
add edi, eax
add ebx, eax
mov eax, dword [esp + 0x60]
add dword [esp + 0x30], eax
add ebp, eax
mov eax, dword [esi + 4]
test al, 1
jne 0x485be5
shr eax, 1
lea edx, [eax - 1]
test eax, edx
jne 0x485bb9
add eax, eax
jne 0x485ba4
mov eax, 1
shl eax, 4
push eax
mov eax, dword [esi]
push eax
call fcn.0045d790
add esp, 8
test eax, eax
mov dword [esi], eax
je 0x485be5
mov eax, dword [esi + 4]
mov ecx, dword [esp + 0x30]
shr eax, 1
shl eax, 4
add eax, dword [esi]
mov dword [eax], edi
mov dword [eax + 4], ebp
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ecx
mov eax, dword [esi + 4]
mov edx, eax
and edx, 0xfffffffe
add edx, 2
and eax, 1
xor edx, eax
mov dword [esi + 4], edx
mov eax, dword [esp + 0x38]
add eax, 1
cmp eax, 0x10
mov dword [esp + 0x38], eax
jb 0x4856d0
mov eax, dword [esp + 0x48]
add eax, 1
cmp eax, 0x10
mov dword [esp + 0x48], eax
jb 0x4856b5
mov eax, dword [esp + 0x70]
push eax
call fcn.0045da90
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x88
ret
mov eax, dword [ebx]
test eax, eax
je 0x485c40
push eax
call fcn.0045da90
add esp, 4
and dword [ebx + 4], 1
mov dword [ebx], 0
mov eax, dword [ebx + 4]
test al, 1
jne 0x485ca2
shr eax, 1
lea ecx, [eax - 1]
test eax, ecx
jne 0x485c6e
add eax, eax
jne 0x485c59
mov eax, 1
mov edx, dword [ebx]
shl eax, 4
push eax
push edx
call fcn.0045d790
add esp, 8
test eax, eax
mov dword [ebx], eax
je 0x485ca2
mov eax, dword [ebx + 4]
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x64]
shr eax, 1
shl eax, 4
add eax, dword [ebx]
mov dword [eax], ecx
mov ecx, dword [esp + 0x68]
mov dword [eax + 4], edi
mov dword [eax + 8], edx
mov dword [eax + 0xc], ecx
mov eax, dword [ebx + 4]
mov edx, eax
and edx, 0xfffffffe
add edx, 2
and eax, 1
xor edx, eax
mov dword [ebx + 4], edx
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x88
ret