Function at 0x4b91c0
Capabilities:
Encrypt data using rc4 prga
Resolve function by parsing pe exports

Disassembly:
push edi
push esi
push ebp
push ebx
sub esp, 0x31c
mov ebp, edx
mov edi, dword [eax + 0x80]
mov dword [esp + 0x220], eax
test edi, edi
je 0x4b999b
mov edx, dword [ebp + 0x18]
mov eax, dword [eax + 8]
mov ecx, dword [ebp + 0x44]
mov dword [esp + 0x18], edx
mov edx, dword [ebp + 0x1c]
mov dword [esp + 0x2d0], eax
mov dword [esp + 0x1c], edx
mov eax, dword [ebp + 0x20]
mov dword [esp + 0x224], ecx
mov dword [esp + 0x20], eax
mov eax, dword [ebp + 0x24]
fldz
mov dword [esp + 0x24], eax
mov eax, dword [ebp + 0x28]
fstp qword [esp + 0x2b8]
mov dword [esp + 0x28], eax
mov eax, dword [ebp + 0x2c]
fldz
mov dword [esp + 0x2c], eax
mov ebx, 1
fstp qword [esp + 0x2e8]
fldz
fldz
fxch st(1)
fstp qword [esp + 0x2e0]
fstp qword [esp + 0x2d8]
xor esi, esi
mov dword [esp + 0x234], ebp
lea edx, [ebx + ebx*2]
movzx eax, byte [edi + edx]
test eax, 0x80
je 0x4b94b0
lea ecx, [ebx + ebx*2]
mov ebp, dword [esp + 0x2d0]
movzx ecx, byte [edi + ecx + 1]
movzx edx, byte [edi + edx + 2]
mov dword [esp + 0x228], edx
lea edx, [ecx*8]
lea edx, [edx + ecx*4]
lea ecx, [esp + 0x18]
add ebp, edx
lea edx, [esp + 0x24]
mov dword [esp + 0x310], edi
mov edi, eax
sar edi, 3
and eax, 0x1f
mov dword [esp + 0x314], edx
mov edx, edi
and edx, 0xc
fld dword [ebp + edx]
fsubr dword [edx + ecx]
fld dword [ebp + edx]
fld dword [ebp + edx]
fxch st(2)
fstp dword [esp + 0x1f0]
fstp qword [esp + 0x2f0]
mov ecx, dword [esp + 0x314]
fsubr dword [edx + ecx]
mov ecx, dword [esp + 0x1f0]
fstp dword [esp + 0x1f4]
xor ecx, dword [esp + 0x1f4]
test ecx, 0x80000000
mov edi, dword [esp + 0x310]
je 0x4b9494
fld qword [esp + 0x2d8]
fld qword [esp + 0x2e0]
fxch st(1)
fstp qword [esp + 0x2d8]
fstp qword [esp + 0x2e0]
fld qword [esp + 0x2e8]
test edx, edx
fstp qword [esp + 0x2e8]
jne 0x4b9380
mov edx, dword [esp + 0x234]
fld qword [esp + 0x2f0]
fsub dword [esp + 0x18]
fld dword [edx]
fmul st(1)
fadd dword [esp + 0x1c]
fld qword [esp + 0x2f0]
fxch st(2)
fmul dword [edx + 4]
fadd dword [esp + 0x20]
fxch st(2)
fstp qword [esp + 0x2d8]
fstp qword [esp + 0x2e0]
fstp qword [esp + 0x2e8]
jmp 0x4b9417
cmp edx, 4
jne 0x4b93d0
mov edx, dword [esp + 0x234]
fld qword [esp + 0x2f0]
fsub dword [esp + 0x1c]
fld dword [edx + 8]
fmul st(1)
fadd dword [esp + 0x18]
fld qword [esp + 0x2f0]
fxch st(2)
fmul dword [edx + 0xc]
fadd dword [esp + 0x20]
fxch st(2)
fstp qword [esp + 0x2e0]
fstp qword [esp + 0x2d8]
fstp qword [esp + 0x2e8]
jmp 0x4b9417
cmp edx, 8
jne 0x4b9417
mov edx, dword [esp + 0x234]
fld qword [esp + 0x2f0]
fsub dword [esp + 0x20]
fld dword [edx + 0x10]
fmul st(1)
fadd dword [esp + 0x18]
fld qword [esp + 0x2f0]
fxch st(2)
fmul dword [edx + 0x14]
fadd dword [esp + 0x1c]
fxch st(2)
fstp qword [esp + 0x2e8]
fstp qword [esp + 0x2d8]
fstp qword [esp + 0x2e0]
inc esi
mov edx, dword [esp + 0x1f0]
test edx, edx
jl 0x4b99ad
lea edx, [ebx + ebx]
imul ecx, esi, 0x18
lea ebp, [esp + 0x70]
mov dword [esp + esi*4 + 0x30], edx
fld qword [esp + 0x2d8]
lea edx, [esp + 0x74]
fld qword [esp + 0x2e0]
fxch st(1)
fst dword [ecx + ebp]
lea ebp, [esp + 0x78]
fld qword [esp + 0x2e8]
fxch st(2)
fst dword [ecx + edx]
lea edx, [esp + 0x7c]
fxch st(2)
fst dword [ecx + ebp]
mov ebp, dword [esp + 0x24]
mov dword [ecx + edx], ebp
mov edx, dword [esp + 0x28]
lea ebp, [esp + 0x80]
mov dword [ecx + ebp], edx
mov edx, dword [esp + 0x2c]
lea ebp, [esp + 0x84]
mov dword [ecx + ebp], edx
fstp dword [esp + 0x2c]
fstp dword [esp + 0x24]
fstp dword [esp + 0x28]
mov edx, dword [esp + 0x1f0]
test edx, edx
jl 0x4b99c0
lea edx, [ebx + ebx + 1]
mov ebx, edx
jmp 0x4b950c
imul ecx, esi, 0x18
lea ebx, [esp + 0x70]
movzx edx, byte [edi + edx + 2]
mov ebx, dword [ecx + ebx]
lea ebp, [esp + 0x74]
mov dword [esp + 0x18], ebx
mov ebp, dword [ecx + ebp]
mov dword [esp + 0x228], edx
mov dword [esp + 0x1c], ebp
lea edx, [esp + 0x78]
lea ebx, [esp + 0x7c]
mov edx, dword [ecx + edx]
lea ebp, [esp + 0x80]
mov dword [esp + 0x20], edx
mov ebx, dword [ecx + ebx]
lea edx, [esp + 0x84]
mov dword [esp + 0x24], ebx
mov ebp, dword [ecx + ebp]
mov ebx, dword [esp + esi*4 + 0x30]
mov dword [esp + 0x28], ebp
mov ecx, dword [ecx + edx]
dec esi
mov dword [esp + 0x2c], ecx
mov edx, dword [esp + 0x220]
mov ecx, dword [esp + 0x228]
mov edx, dword [edx + 4]
test eax, eax
lea ebp, [edx + ecx*8]
je 0x4b9993
mov dword [esp + 0x22c], eax
mov dword [esp + 0x300], edi
mov dword [esp + 0x2f8], ebx
mov ebx, dword [esp + 0x2d0]
mov dword [esp + 0x2fc], esi
nop
lea esi, [esi]
movzx eax, word [ebp + 6]
movzx edx, word [ebp + 2]
lea ecx, [eax*8]
lea esi, [edx*8]
lea ecx, [ecx + eax*4]
lea edx, [esi + edx*4]
mov dword [esp + 0x230], ecx
add ecx, ebx
lea esi, [ebx + edx]
mov dword [esp + 0x238], ecx
fld dword [ecx + 4]
fsub dword [esi + 4]
mov eax, dword [esp + 0x234]
movzx edi, word [ebp + 4]
fld dword [eax + 0x38]
fmul st(1)
fxch st(1)
fst qword [esp + 0x2b0]
fmul dword [eax + 0x40]
fld dword [ecx]
fsub dword [esi]
fld dword [eax + 0x3c]
fmul st(1)
fsubp st(3)
fst qword [esp + 0x2c0]
fmul dword [eax + 0x40]
fxch st(2)
fst qword [esp + 0x270]
fld dword [esi + 8]
fld dword [esi + 8]
fld dword [eax + 0x38]
fld dword [ecx + 8]
fsub st(2)
lea ecx, [edi*8]
fmul st(1), st(0)
fxch st(1)
lea ecx, [ecx + edi*4]
fsubp st(6)
lea edi, [ebx + ecx]
fld dword [esi + 4]
fxch st(3)
fsubr dword [edi + 8]
fld dword [edi + 4]
fsub st(4)
fxch st(1)
fmul st(5), st(0)
fstp qword [esp + 0x288]
fld dword [eax + 0x3c]
fxch st(2)
fst qword [esp + 0x2a8]
fmul st(2)
fsubrp st(6)
fxch st(6)
fst qword [esp + 0x278]
fmul st(6)
faddp st(4)
fxch st(5)
fstp qword [esp + 0x290]
fld dword [esi]
fld dword [edi]
fsub st(1)
fxch st(5)
fst qword [esp + 0x280]
fmul st(5)
faddp st(4)
fld dword [0x529500]
fxch st(5)
fstp qword [esp + 0x298]
fld qword [esp + 0x2b8]
fld dword [eax + 0x38]
fxch st(1)
fstp qword [esp + 0x2b8]
fstp qword [esp + 0x2c8]
fld dword [eax + 0x40]
fxch st(5)
fcomp st(4)
fnstsw ax
sahf
jae 0x4b9a00
mov eax, dword [esp + 0x234]
fld qword [esp + 0x270]
mov eax, dword [eax + 0x34]
fld qword [esp + 0x278]
fxch st(3)
fsubr dword [eax + 8]
fxch st(4)
fsubr dword [eax + 4]
fxch st(4)
fmul st(1), st(0)
fstp qword [esp + 0x258]
fld qword [esp + 0x280]
fxch st(4)
fmul st(3), st(0)
fstp qword [esp + 0x260]
faddp st(2)
fsubr dword [eax]
fmul st(2), st(0)
fstp qword [esp + 0x268]
faddp st(1)
fld st(1)
fchs
fmul dword [0x529504]
fxch st(1)
fst qword [esp + 0x250]
fcomp st(1)
fnstsw ax
fst qword [esp + 0x2a0]
fsubr st(1)
fstp qword [esp + 0x248]
sahf
jb 0x4b99f0
fld qword [esp + 0x250]
fcomp qword [esp + 0x248]
fnstsw ax
sahf
ja 0x4b99f0
fld qword [esp + 0x290]
fmul qword [esp + 0x268]
fld qword [esp + 0x298]
fmul qword [esp + 0x260]
fsubp st(1)
fld qword [esp + 0x298]
fmul qword [esp + 0x258]
fld qword [esp + 0x268]
fmul qword [esp + 0x288]
fsubp st(1)
fxch st(1)
fmul st(3), st(0)
fld qword [esp + 0x288]
fmul qword [esp + 0x260]
fld qword [esp + 0x258]
fmul qword [esp + 0x290]
fsubp st(1)
fxch st(2)
fmul st(5), st(0)
fld qword [esp + 0x2c8]
fmul st(3)
fxch st(6)
faddp st(5)
fld qword [esp + 0x2a0]
fxch st(6)
faddp st(5)
fxch st(5)
fcomp st(4)
fnstsw ax
fxch st(3)
fstp qword [esp + 0x240]
sahf
ja 0x4b99e0
fld qword [esp + 0x250]
fadd qword [esp + 0x240]
fcomp qword [esp + 0x248]
fnstsw ax
sahf
ja 0x4b99e0
fmul qword [esp + 0x2c0]
fld qword [esp + 0x2a0]
fxch st(3)
fmul qword [esp + 0x2a8]
fxch st(4)
fmul qword [esp + 0x2b0]
faddp st(4)
faddp st(3)
fxch st(1)
fcomp st(2)
fnstsw ax
fxch st(1)
fstp qword [esp + 0x2b8]
sahf
ja 0x4b99d0
fld qword [esp + 0x2b8]
fcomp qword [esp + 0x248]
fnstsw ax
sahf
ja 0x4b99d0
fdivr qword [esp + 0x2b8]
mov al, 1
fstp qword [esp + 0x2b8]
test al, al
je 0x4b9957
mov eax, dword [edx + ebx]
mov dword [esp + 0x204], eax
mov eax, dword [edx + ebx + 4]
mov dword [esp + 0x208], eax
mov eax, dword [edx + ebx + 8]
mov dword [esp + 0x20c], eax
mov eax, dword [esp + 0x228]
mov dword [esp + 0x210], eax
mov eax, dword [esp + 0x230]
fld dword [edx + ebx]
fsubr dword [eax + ebx]
fld dword [ecx + ebx + 8]
fsub dword [edx + ebx + 8]
fld dword [edx + ebx + 8]
fsubr dword [eax + ebx + 8]
fld dword [edx + ebx]
fsubr dword [ecx + ebx]
fld dword [edx + ebx + 4]
fsubr dword [eax + ebx + 4]
fld dword [edx + ebx + 4]
fsubr dword [ecx + ebx + 4]
fld st(5)
fmul st(5)
fld st(4)
fmul st(4)
fsubp st(1)
fxch st(2)
fmul st(3), st(0)
fxch st(2)
fstp dword [esp + 0x1fc]
fld dword [esp + 0x1fc]
fxch st(1)
fmul st(6), st(0)
fxch st(6)
fsubp st(3)
fmul st(0)
fxch st(2)
fst dword [esp + 0x200]
fmul st(0)
faddp st(2)
fmulp st(3)
fxch st(3)
fmulp st(1)
fsubrp st(1)
fstp dword [esp + 0x1f8]
fld dword [esp + 0x1f8]
fmul st(0)
faddp st(1)
fstp dword [esp]
call fcn.00456640
fld dword [esp + 0x200]
fmul st(1)
fld dword [esp + 0x1fc]
fmul st(2)
fxch st(1)
fstp dword [esp + 0x200]
fstp dword [esp + 0x1fc]
fmul dword [esp + 0x1f8]
mov eax, dword [esp + 0x238]
mov edx, dword [esp + 0x224]
fstp dword [esp + 0x1f8]
mov dword [esp + 0x21c], eax
mov dword [esp + 0x218], edi
mov dword [esp + 0x214], esi
mov eax, dword [edx]
fld qword [esp + 0x2b8]
lea ecx, [esp + 0x1f8]
mov esi, dword [esp + 0x220]
fstp dword [esp + 0xc]
mov dword [esp], eax
mov dword [esp + 8], ecx
mov dword [esp + 4], esi
mov eax, dword [edx + 8]
mov dword [esp + 0x10], eax
call dword [edx + 4]
test eax, eax
je 0x4b9a20
mov eax, dword [esp + 0x228]
add ebp, 8
inc eax
mov edx, dword [esp + 0x22c]
mov dword [esp + 0x228], eax
dec edx
mov dword [esp + 0x22c], edx
jne 0x4b9550
mov esi, dword [esp + 0x2fc]
mov ebx, dword [esp + 0x2f8]
mov edi, dword [esp + 0x300]
test esi, esi
jge 0x4b9253
mov eax, dword [esp + 0x220]
add esp, 0x31c
pop ebx
pop ebp
pop esi
pop edi
ret
lea edx, [ebx + ebx + 1]
jmp 0x4b942a
lea edx, [ebx + ebx]
jmp 0x4b94a7
fstp st(0)
xor al, al
jmp 0x4b980c
fstp st(0)
fstp st(0)
fstp st(0)
fstp st(0)
xor al, al
jmp 0x4b980c
fstp st(0)
fstp st(0)
fstp st(0)
xor al, al
jmp 0x4b980c
fstp st(0)
fstp st(0)
fstp st(0)
fstp st(0)
fstp st(0)
fstp st(0)
xor al, al
jmp 0x4b980c
add esp, 0x31c
xor eax, eax
pop ebx
pop ebp
pop esi
pop edi
ret