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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x1084
call fcn.004ba960
push ebx
push ebp
mov ebp, ecx
push esi
xor ebx, ebx
xor esi, esi
xor edx, edx
xor ecx, ecx
push edi
xor eax, eax
mov dword [esp + eax + 0x894], ecx
mov dword [esp + eax + 0x494], edx
mov dword [esp + eax + 0xc94], esi
add ecx, 0x1e
add edx, 0x3b
add esi, 0xb
add eax, 4
cmp ecx, 0x1e00
jl 0x46f290
mov eax, dword [ebp + 4]
mov dword [esp + 0x6c], ebx
cmp eax, ebx
jle 0x46fa5b
xor esi, esi
mov dword [esp + 0x4c], ebx
mov eax, 0xffff
lea edi, [esp + 0x28c]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x28], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x44], 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ebx
mov dword [eax + esi + 0x158], ebx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x34], ebx
mov dword [eax + esi + 0x15c], ebx
mov ecx, dword [ebp + 0xc]
mov dword [esp + 0x40], ebx
mov dword [esp + 0x38], ebx
mov dword [ecx + esi + 0x160], ebx
mov dword [esp + 0x30], ebx
mov dword [ecx + esi + 0x164], ebx
mov edx, dword [ebp + 0xc]
mov dword [edx + esi + 0x168], ebx
mov dword [edx + esi + 0x16c], ebx
mov eax, dword [ebp + 0xc]
mov dword [eax + esi + 0x170], ebx
mov dword [eax + esi + 0x174], ebx
mov ecx, dword [ebp + 0xc]
mov dword [ecx + esi + 0x178], ebx
mov dword [ecx + esi + 0x17c], ebx
mov edx, dword [ebp + 0xc]
mov dword [edx + esi + 0x188], ebx
mov dword [edx + esi + 0x18c], ebx
mov eax, dword [ebp + 0xc]
mov dword [eax + esi + 0x190], ebx
mov dword [eax + esi + 0x194], ebx
mov ecx, dword [ebp + 0xc]
mov dword [ecx + esi + 0x198], ebx
mov dword [ecx + esi + 0x19c], ebx
mov edx, dword [ebp + 0xc]
mov dword [edx + esi + 0x1a0], ebx
mov dword [edx + esi + 0x1a4], ebx
mov eax, dword [ebp + 0xc]
mov dword [eax + esi + 0x1a8], ebx
mov dword [eax + esi + 0x1ac], ebx
mov ecx, dword [ebp + 0xc]
mov dword [ecx + esi + 0x1b8], ebx
mov dword [ecx + esi + 0x1bc], ebx
mov edx, dword [ebp + 0xc]
mov dword [edx + esi + 0x1c0], ebx
mov dword [edx + esi + 0x1c4], ebx
mov eax, dword [ebp + 0xc]
mov dword [eax + esi + 0x1c8], ebx
mov dword [eax + esi + 0x1cc], ebx
mov ecx, dword [ebp + 0xc]
mov dword [ecx + esi + 0x1d0], ebx
mov dword [ecx + esi + 0x1d4], ebx
mov edx, dword [ebp + 0xc]
mov dword [edx + esi + 0x1d8], ebx
mov dword [edx + esi + 0x1dc], ebx
mov eax, dword [ebp + 0xc]
mov dword [eax + esi + 0x1e8], ebx
mov dword [eax + esi + 0x1ec], ebx
mov ecx, dword [ebp + 0xc]
mov dword [ecx + esi + 0x1f0], ebx
mov dword [ecx + esi + 0x1f4], ebx
mov edx, dword [ebp + 0xc]
mov dword [edx + esi + 0x1f8], ebx
mov dword [edx + esi + 0x1fc], ebx
mov eax, dword [ebp + 0xc]
mov dword [eax + esi + 0x200], ebx
mov dword [eax + esi + 0x204], ebx
mov ecx, dword [ebp + 0xc]
xor eax, eax
mov dword [ecx + esi + 0x208], ebx
mov dword [ecx + esi + 0x20c], ebx
mov ecx, 0x40
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x188]
mov edx, dword [ebp + 8]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x84]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x390]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov eax, dword [esp + 0x4c]
add edx, eax
mov dword [esp + 0x7c], edx
mov ecx, dword [edx + 0x14]
mov eax, dword [edx + 0x1c]
cmp ecx, eax
jg 0x46f6a2
mov edi, dword [edx + 0x10]
mov edx, dword [edx + 0x18]
mov dword [esp + 0x58], edx
mov edx, dword [ebp + 0x1c]
neg edx
mov dword [esp + 0x78], edx
mov edx, dword [ebp + 0x30]
mov dword [esp + 0x14], edi
sub eax, ecx
lea edi, [edx*4]
imul edx, ecx
mov dword [esp + 0x10], edi
mov edi, dword [ebp + 0x2c]
lea edx, [edi + edx*4]
mov edi, dword [ebp + 0x18]
mov dword [esp + 0x54], edx
lea edx, [ecx + 1]
imul edx, dword [ebp + 0x1c]
sub edi, edx
mov edx, dword [esp + 0x14]
inc eax
mov dword [esp + 0x5c], edi
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x54]
cmp edx, dword [esp + 0x58]
jg 0x46f67f
mov ecx, dword [esp + 0x7c]
lea eax, [eax + edx*4]
mov dword [esp + 0x50], eax
mov ecx, dword [ecx + 0xc]
mov dword [esp + 0x80], ecx
lea ecx, [edi + edx*2]
lea eax, [edx + ecx + 2]
mov ecx, dword [esp + 0x58]
sub ecx, edx
mov dword [esp + 0x70], eax
inc ecx
mov dword [esp + 0x68], ecx
mov edi, dword [esp + 0x50]
mov edx, dword [esp + 0x80]
cmp dword [edi], edx
jne 0x46f656
xor ecx, ecx
xor edx, edx
mov cl, byte [eax - 1]
mov dl, byte [eax - 2]
mov dword [esp + 0x60], ecx
xor ecx, ecx
mov cl, byte [eax]
mov eax, dword [esp + 0x60]
mov edi, ecx
mov dword [esp + 0x74], edx
mov ecx, dword [esp + edi*4 + 0x894]
add ecx, dword [esp + eax*4 + 0x494]
mov eax, dword [esp + edx*4 + 0xc94]
add ecx, eax
mov eax, 0x51eb851f
imul ecx
mov eax, dword [esp + 0x18]
sar edx, 5
mov ecx, edx
add eax, edi
shr ecx, 0x1f
add edx, ecx
mov ecx, dword [esp + 0x44]
inc ecx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x20]
add ecx, eax
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x74]
add dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x24]
add ecx, edx
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x48]
cmp edi, ecx
jge 0x46f5de
mov dword [esp + 0x48], edi
cmp eax, dword [esp + 0x2c]
jge 0x46f5e8
mov dword [esp + 0x2c], eax
mov ecx, dword [esp + 0x74]
cmp ecx, dword [esp + 0x3c]
jge 0x46f5f6
mov dword [esp + 0x3c], ecx
cmp edx, dword [esp + 0x28]
jge 0x46f600
mov dword [esp + 0x28], edx
cmp edi, dword [esp + 0x38]
jle 0x46f60a
mov dword [esp + 0x38], edi
cmp eax, dword [esp + 0x40]
jle 0x46f614
mov dword [esp + 0x40], eax
cmp ecx, dword [esp + 0x34]
jle 0x46f61e
mov dword [esp + 0x34], ecx
cmp edx, dword [esp + 0x30]
jle 0x46f628
mov dword [esp + 0x30], edx
mov byte [esp + edx + 0x390], 1
mov edx, dword [esp + 0x14]
mov byte [esp + ecx + 0x84], 1
mov ecx, dword [esp + 0x68]
mov byte [esp + eax + 0x188], 1
mov eax, dword [esp + 0x70]
mov byte [esp + edi + 0x28c], 1
jmp 0x46f65a
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x50]
add eax, 3
add edi, 4
dec ecx
mov dword [esp + 0x50], edi
mov dword [esp + 0x70], eax
mov dword [esp + 0x68], ecx
jne 0x46f548
mov eax, dword [esp + 0x54]
mov edi, dword [esp + 0x5c]
mov ecx, dword [esp + 0x78]
add edi, ecx
mov ecx, dword [esp + 0x10]
add eax, ecx
mov ecx, dword [esp + 0x64]
dec ecx
mov dword [esp + 0x5c], edi
mov dword [esp + 0x54], eax
mov dword [esp + 0x64], ecx
jne 0x46f513
mov cl, byte [esp + 0x38c]
xor eax, eax
mov dl, byte [esp + eax + 0x28c]
add cl, dl
mov dl, byte [esp + eax + 0x188]
add byte [esp + 0x288], dl
mov dl, byte [esp + eax + 0x84]
add byte [esp + 0x184], dl
mov dl, byte [esp + eax + 0x390]
add byte [esp + 0x490], dl
inc eax
cmp eax, 0x100
mov byte [esp + 0x38c], cl
jl 0x46f6ab
mov eax, dword [esp + 0x38c]
and eax, 0xff
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fadd qword [0x4f9a78]
fmul qword [0x4f9bc8]
call fcn.004ba990
mov ecx, dword [esp + 0x288]
mov byte [esp + 0x38c], al
and ecx, 0xff
mov dword [esp + 0x10], ecx
fild dword [esp + 0x10]
fadd qword [0x4f9a78]
fmul qword [0x4f9bc8]
call fcn.004ba990
mov edx, dword [esp + 0x184]
mov byte [esp + 0x288], al
and edx, 0xff
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fadd qword [0x4f9a78]
fmul qword [0x4f9bc8]
call fcn.004ba990
mov byte [esp + 0x184], al
mov eax, dword [esp + 0x490]
and eax, 0xff
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fadd qword [0x4f9a78]
fmul qword [0x4f9bc8]
call fcn.004ba990
mov cl, byte [esp + 0x491]
xor edi, edi
mov byte [esp + 0x490], al
mov dword [esp + 0x14], edi
mov al, byte [esp + 0x38d]
mov dl, byte [esp + edi + 0x28c]
add al, dl
mov dl, byte [esp + 0x38c]
cmp al, dl
mov byte [esp + 0x38d], al
jae 0x46f7dc
fild dword [esp + 0x14]
mov edx, dword [ebp + 0xc]
fstp qword [edx + esi + 0x1a8]
mov al, byte [esp + 0x289]
mov dl, byte [esp + edi + 0x188]
add al, dl
mov dl, byte [esp + 0x288]
cmp al, dl
mov byte [esp + 0x289], al
jae 0x46f80c
fild dword [esp + 0x14]
mov eax, dword [ebp + 0xc]
fstp qword [eax + esi + 0x1d8]
mov dl, byte [esp + edi + 0x84]
mov al, byte [esp + 0x185]
add al, dl
mov byte [esp + 0x185], al
mov al, byte [esp + 0x184]
cmp cl, al
jae 0x46f83c
fild dword [esp + 0x14]
mov eax, dword [ebp + 0xc]
fstp qword [eax + esi + 0x208]
mov dl, byte [esp + edi + 0x390]
add cl, dl
mov dl, byte [esp + 0x490]
cmp cl, dl
mov byte [esp + 0x491], cl
jae 0x46f865
fild dword [esp + 0x14]
mov eax, dword [ebp + 0xc]
fstp qword [eax + esi + 0x178]
inc edi
cmp edi, 0x100
mov dword [esp + 0x14], edi
jl 0x46f7ac
cmp byte [esp + 0x38c], bl
jbe 0x46f898
mov ecx, dword [ebp + 0xc]
fld qword [ecx + esi + 0x1a8]
fadd qword [0x4f9a78]
lea eax, [ecx + esi + 0x1a8]
fstp qword [eax]
cmp byte [esp + 0x288], bl
jbe 0x46f8ba
mov eax, dword [ebp + 0xc]
fld qword [eax + esi + 0x1d8]
fadd qword [0x4f9a78]
lea eax, [eax + esi + 0x1d8]
fstp qword [eax]
cmp byte [esp + 0x184], bl
jbe 0x46f8dc
mov ecx, dword [ebp + 0xc]
fld qword [ecx + esi + 0x208]
fadd qword [0x4f9a78]
lea eax, [ecx + esi + 0x208]
fstp qword [eax]
cmp dl, bl
jbe 0x46f8f9
mov edx, dword [ebp + 0xc]
fld qword [edx + esi + 0x178]
fadd qword [0x4f9a78]
lea eax, [edx + esi + 0x178]
fstp qword [eax]
fild dword [esp + 0x24]
mov eax, dword [ebp + 0xc]
fst qword [eax + esi + 0x158]
fild dword [esp + 0x30]
mov ecx, dword [ebp + 0xc]
fstp qword [ecx + esi + 0x160]
fild dword [esp + 0x28]
mov edx, dword [ebp + 0xc]
fstp qword [edx + esi + 0x168]
mov eax, dword [ebp + 0xc]
fstp qword [eax + esi + 0x170]
fild dword [esp + 0x18]
mov ecx, dword [ebp + 0xc]
fst qword [ecx + esi + 0x188]
fild dword [esp + 0x38]
mov edx, dword [ebp + 0xc]
fstp qword [edx + esi + 0x190]
fild dword [esp + 0x48]
mov eax, dword [ebp + 0xc]
fstp qword [eax + esi + 0x198]
mov ecx, dword [ebp + 0xc]
fstp qword [ecx + esi + 0x1a0]
fild dword [esp + 0x20]
mov edx, dword [ebp + 0xc]
fst qword [edx + esi + 0x1b8]
fild dword [esp + 0x40]
mov eax, dword [ebp + 0xc]
fstp qword [eax + esi + 0x1c0]
fild dword [esp + 0x2c]
mov ecx, dword [ebp + 0xc]
fstp qword [ecx + esi + 0x1c8]
mov edx, dword [ebp + 0xc]
fstp qword [edx + esi + 0x1d0]
fild dword [esp + 0x1c]
mov eax, dword [ebp + 0xc]
fst qword [eax + esi + 0x1e8]
fild dword [esp + 0x34]
mov ecx, dword [ebp + 0xc]
fstp qword [ecx + esi + 0x1f0]
fild dword [esp + 0x3c]
mov edx, dword [ebp + 0xc]
mov ecx, dword [esp + 0x44]
dec ecx
fstp qword [edx + esi + 0x1f8]
mov eax, dword [ebp + 0xc]
cmp ecx, ebx
fstp qword [eax + esi + 0x200]
jle 0x46fa36
mov eax, dword [esp + 0x24]
cdq
idiv ecx
mov edx, dword [ebp + 0xc]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x18]
fild dword [esp + 0x10]
fstp qword [edx + esi + 0x170]
cdq
idiv ecx
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 0xc]
fild dword [esp + 0x10]
fstp qword [eax + esi + 0x1a0]
mov eax, dword [esp + 0x20]
cdq
idiv ecx
mov edx, dword [ebp + 0xc]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x1c]
fild dword [esp + 0x10]
fstp qword [edx + esi + 0x1d0]
cdq
idiv ecx
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 0xc]
fild dword [esp + 0x10]
fstp qword [eax + esi + 0x200]
mov eax, dword [esp + 0x6c]
mov edi, dword [esp + 0x4c]
mov ecx, dword [ebp + 4]
inc eax
add edi, 0x60
add esi, 0x3f8
cmp eax, ecx
mov dword [esp + 0x6c], eax
mov dword [esp + 0x4c], edi
jl 0x46f2ce
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret