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

Disassembly:
sub esp, 0x9c
mov eax, dword [esp + 0xa0]
push esi
push edi
mov esi, ecx
mov ecx, dword [esi + 0x6c0]
xor edi, edi
push edi
push eax
mov dword [esp + 0x1c], esi
call fcn.0048c330
push 1
push 0x24
lea ecx, [esp + 0x60]
push ecx
mov ecx, dword [esi + 0x6c0]
call fcn.0048c290
cmp word [esp + 0x6c], 1
jne 0x4252bf
mov ax, word [esp + 0x7a]
cmp ax, 8
je 0x424ad9
cmp ax, 0x10
jne 0x4252bf
mov edx, dword [esp + 0x68]
push 1
add edx, 0xfffffff0
mov ecx, dword [esi + 0x6c0]
push edx
call fcn.0048c330
mov ecx, dword [esi + 0x6c0]
push 1
push 8
lea eax, [esp + 0x54]
push eax
call fcn.0048c290
push 4
lea ecx, [esp + 0x50]
push str.data
push ecx
call fcn.004982c0
add esp, 0xc
test eax, eax
je 0x424b22
mov edx, dword [esp + 0x50]
push 1
jmp 0x424ae2
mov ecx, dword [esp + 0x6e]
mov eax, dword [esp + 0x50]
and ecx, 0xffff
xor edx, edx
div ecx
cmp word [esp + 0x7a], 0x10
push ebx
mov dword [esp + 0x10], edi
mov ebx, eax
mov dword [esp + 0xc], ebx
jne 0x424b52
cdq
sub eax, edx
sar eax, 1
mov ebx, eax
mov dword [esp + 0xc], ebx
cmp ebx, edi
fild dword [esp + 0x74]
mov eax, dword [esp + 0x74]
mov dword [esi + 0x7f0], eax
fdivr qword [0x4adf08]
fstp qword [esi + 0x7f8]
jle 0x4252af
shl ecx, 0x10
push ebp
push ecx
call fcn.00497ba0
mov ecx, dword [esp + 0x7a]
add esp, 4
and ecx, 0xffff
push 1
shl ecx, 0x10
mov ebp, eax
push ecx
mov ecx, dword [esi + 0x6c0]
push ebp
mov dword [esp + 0x68], ebp
call fcn.0048c290
mov edx, dword [esi + 0xc5c]
mov al, byte [edx + 0x8d8238]
test al, al
jne 0x424ddf
lea eax, [ebx + ebx]
push eax
call fcn.00497ba0
mov ecx, eax
add esp, 4
xor eax, eax
cmp ebx, edi
mov dword [esp + 0x24], ecx
jle 0x424c6e
mov dword [esp + 0x30], ecx
mov dword [esp + 0x28], ebx
mov esi, dword [esp + 0x76]
and esi, 0xffff
jle 0x424c30
mov dx, word [esp + 0x82]
lea ecx, [esp + 0x8c]
mov edi, esi
cmp dx, 0x10
jne 0x424c18
mov bl, byte [eax + ebp]
inc eax
mov byte [esp + 0x18], bl
mov bl, byte [eax + ebp]
mov byte [esp + 0x19], bl
mov bx, word [esp + 0x18]
inc eax
mov word [ecx], bx
jmp 0x424c2a
movzx bx, byte [eax + ebp]
sub ebx, 0x80
shl ebx, 8
mov word [ecx], bx
inc eax
add ecx, 2
dec edi
jne 0x424bf8
shl esi, 0x10
mov ecx, esi
cmp eax, ecx
jne 0x424c4e
push 1
push ecx
mov ecx, dword [esp + 0x24]
mov ecx, dword [ecx + 0x6c0]
push ebp
call fcn.0048c290
xor eax, eax
mov ecx, dword [esp + 0x30]
mov dx, word [esp + 0x8c]
mov word [ecx], dx
add ecx, 2
mov dword [esp + 0x30], ecx
dec dword [esp + 0x28]
jne 0x424bdb
mov eax, dword [esp + 0x78]
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
push eax
push edi
push ecx
call fcn.00424950
push edi
call fcn.00497ba0
mov ecx, dword [esp + 0x2c]
mov dword [ecx + 0x808], eax
xor eax, eax
xor ebp, ebp
add esp, 0x10
xor bl, bl
xor esi, esi
cmp edi, eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x20], ebp
jle 0x424d86
mov edx, dword [esp + 0x24]
mov dword [esp + 0x2c], edx
mov ecx, dword [esp + 0x2c]
mov di, word [ecx]
test di, di
setg dl
test bl, bl
jne 0x424cec
test dl, dl
je 0x424d37
cmp bp, 0xf800
jl 0x424d16
cmp esi, eax
mov ecx, esi
jge 0x424d16
mov ebp, dword [esp + 0x1c]
mov ebp, dword [ebp + 0x808]
mov byte [ecx + ebp], 0
inc ecx
cmp ecx, eax
jl 0x424cd7
jmp 0x424d12
test dl, dl
jne 0x424d16
cmp word [esp + 0x14], 0x800
jg 0x424d16
cmp esi, eax
mov ecx, esi
jge 0x424d16
mov ebp, dword [esp + 0x1c]
mov ebp, dword [ebp + 0x808]
mov byte [ecx + ebp], 0
inc ecx
cmp ecx, eax
jl 0x424cff
mov ebp, dword [esp + 0x20]
cmp bl, dl
je 0x424d26
xor ebp, ebp
mov esi, eax
mov dword [esp + 0x20], ebp
mov dword [esp + 0x14], ebp
test dl, dl
je 0x424d37
cmp word [esp + 0x14], di
jge 0x424d42
mov dword [esp + 0x14], edi
jmp 0x424d42
cmp bp, di
jle 0x424d42
mov ebp, edi
mov dword [esp + 0x20], ebp
mov edi, dword [esp + 0x1c]
mov edi, dword [edi + 0x808]
test dl, dl
sete cl
mov bl, dl
dec ecx
and ecx, 0xff
mov byte [eax + edi], cl
mov edi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x10]
inc eax
add edi, 2
cmp eax, ecx
mov dword [esp + 0x2c], edi
jl 0x424cb5
test dl, dl
jne 0x424d9d
cmp bp, 0xf800
jl 0x424dc5
mov edi, ecx
mov ecx, dword [esp + 0x1c]
cmp esi, edi
mov eax, esi
jge 0x424dc5
mov edx, dword [ecx + 0x808]
mov byte [eax + edx], 0
inc eax
cmp eax, edi
jl 0x424d8c
jmp 0x424dc5
cmp word [esp + 0x14], 0x800
jg 0x424dc5
cmp esi, dword [esp + 0x10]
mov eax, esi
jge 0x424dc5
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx + 0x808]
mov ecx, dword [esp + 0x10]
mov byte [eax + edx], 0
inc eax
cmp eax, ecx
jl 0x424dae
mov eax, dword [esp + 0x24]
push eax
call fcn.00496e03
mov ecx, dword [esp + 0x14]
add esp, 4
mov dword [esp + 0x14], ecx
jmp 0x4252a1
lea edx, [ebx + ebx]
push edx
call fcn.00497ba0
mov ecx, eax
add esp, 4
xor eax, eax
cmp ebx, edi
mov dword [esp + 0x30], ecx
jle 0x424e99
mov dword [esp + 0x28], ecx
mov dword [esp + 0x34], ebx
mov esi, dword [esp + 0x76]
and esi, 0xffff
jle 0x424e55
lea ecx, [esp + 0x8c]
mov edi, esi
cmp word [esp + 0x82], 0x10
jne 0x424e3d
mov dl, byte [eax + ebp]
inc eax
mov byte [esp + 0x18], dl
mov dl, byte [eax + ebp]
mov byte [esp + 0x19], dl
mov dx, word [esp + 0x18]
inc eax
mov word [ecx], dx
jmp 0x424e4f
movzx dx, byte [eax + ebp]
sub edx, 0x80
shl edx, 8
mov word [ecx], dx
inc eax
add ecx, 2
dec edi
jne 0x424e18
shl esi, 0x10
mov ecx, esi
cmp eax, ecx
jne 0x424e73
mov eax, dword [esp + 0x1c]
push 1
push ecx
mov ecx, dword [eax + 0x6c0]
push ebp
call fcn.0048c290
xor eax, eax
mov ecx, dword [esp + 0x28]
mov dx, word [esp + 0x8c]
mov word [ecx], dx
add ecx, 2
mov dword [esp + 0x28], ecx
dec dword [esp + 0x34]
jne 0x424e03
mov ecx, dword [esp + 0x30]
xor edi, edi
mov eax, dword [esp + 0x78]
push eax
push ebx
push ecx
call fcn.00424950
mov ecx, dword [esp + 0x84]
shl ecx, 4
mov dword [esp + 0x54], ecx
mov dword [esp + 0x58], edi
fild qword [esp + 0x54]
fld st(0)
fmul qword [0x4ae0b8]
fadd qword [0x4a9fb0]
call fcn.00412290
fmul qword [0x4ae0b0]
mov dword [esp + 0x38], eax
fadd qword [0x4a9fb0]
call fcn.00412290
push 4
push eax
mov dword [esp + 0x24], eax
call fcn.00496cc6
mov ebp, dword [esp + 0x28]
add esp, 0x14
dec ebx
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edi
mov dword [esp + 0x50], ebx
mov ecx, dword [esp + 0x50]
xor esi, esi
xor edi, edi
xor bl, bl
test ecx, ecx
jle 0x42506a
mov eax, dword [esp + 0x30]
mov dword [esp + 0x34], eax
mov dword [esp + 0x3c], ecx
jmp 0x424f27
mov eax, dword [esp + 0x34]
movsx ecx, word [eax]
movsx edx, word [eax + 2]
sub edx, ecx
mov dword [esp + 0x38], edx
mov dword [esp + 0x48], ecx
fild dword [esp + 0x38]
mov dword [esp + 0x38], 0
fmul qword [0x4ae080]
fild dword [esp + 0x38]
fmul st(1)
fadd qword [0x4a9fb0]
call fcn.00412290
add eax, dword [esp + 0x48]
test eax, eax
setg al
test bl, bl
mov byte [esp + 0x18], al
jne 0x425032
test al, al
je 0x425039
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x424faa
cmp esi, dword [esp + 0x10]
jge 0x42502a
mov eax, dword [esp + 0x2c]
cmp esi, eax
jle 0x42502a
cmp edi, eax
jle 0x42502a
mov eax, dword [esp + 0x20]
inc dword [eax + esi*4]
jmp 0x42502a
mov eax, esi
cdq
and edx, 0xf
add eax, edx
mov ecx, eax
mov eax, edi
cdq
and edx, 0xf
add eax, edx
mov edx, dword [esp + 0x10]
sar ecx, 4
sar eax, 4
cmp esi, edx
jge 0x424fea
mov ebx, dword [esp + 0x2c]
cmp esi, ebx
jle 0x424fea
cmp edi, ebx
jle 0x424fea
cmp esi, dword [esp + 0x28]
mov ecx, dword [esp + 0x44]
jg 0x424fe4
mov ecx, dword [esp + 0x40]
cmp edi, edx
jge 0x424fea
mov eax, ecx
mov edx, dword [esp + 0x1c]
mov esi, dword [edx + 0x808]
test esi, esi
je 0x425022
test ecx, ecx
jle 0x42500e
mov esi, dword [edx + 0x808]
mov byte [esi + ebp], 0xff
inc ebp
dec ecx
mov dword [esp + 0x14], ebp
jne 0x424ffc
test eax, eax
jle 0x42502a
mov ecx, dword [edx + 0x808]
mov byte [ecx + ebp], 0
inc ebp
dec eax
jne 0x425012
jmp 0x425026
add eax, ecx
add ebp, eax
mov dword [esp + 0x14], ebp
mov al, byte [esp + 0x18]
xor edi, edi
xor esi, esi
test al, al
je 0x425039
inc esi
jmp 0x42503a
inc edi
mov bl, al
mov eax, dword [esp + 0x38]
inc eax
cmp eax, 0x10
mov dword [esp + 0x38], eax
jl 0x424f4a
mov edx, dword [esp + 0x34]
fstp st(0)
mov eax, dword [esp + 0x3c]
add edx, 2
dec eax
mov dword [esp + 0x34], edx
mov dword [esp + 0x3c], eax
jne 0x424f23
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x4251dc
mov ecx, dword [esp + 0x10]
xor edi, edi
xor esi, esi
xor eax, eax
test ecx, ecx
jle 0x4250b7
mov edx, dword [esp + 0x20]
mov ebx, ecx
mov ecx, dword [edx]
mov ebp, ecx
imul ebp, eax
add edi, ebp
add esi, ecx
inc eax
add edx, 4
cmp eax, ebx
jl 0x42508a
cmp esi, 0x1c200
mov dword [esp + 0x18], esi
mov dword [esp + 0x10], edi
jle 0x4250b7
fild dword [esp + 0x10]
fidiv dword [esp + 0x18]
jmp 0x4250dd
mov eax, dword [esp + 0x78]
shl eax, 4
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], 0
fild qword [esp + 0x84]
fmul qword [0x4ae0a8]
fadd qword [0x4a9fb0]
call fcn.00412290
xor ebx, ebx
xor edi, edi
xor ecx, ecx
test eax, eax
mov dword [esp + 0x18], ebx
mov dword [esp + 0x10], edi
jle 0x425119
mov esi, dword [esp + 0x20]
mov edx, dword [esi]
mov ebp, edx
imul ebp, ecx
add edi, ebp
add ebx, edx
inc ecx
add esi, 4
cmp ecx, eax
jl 0x4250fe
mov dword [esp + 0x18], ebx
mov dword [esp + 0x10], edi
fild dword [esp + 0x10]
xor ebx, ebx
xor edi, edi
lea esi, [eax + eax]
cmp eax, esi
fidiv dword [esp + 0x18]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x10], edi
jge 0x425156
mov ecx, dword [esp + 0x20]
lea edx, [ecx + eax*4]
mov ecx, dword [edx]
mov ebp, ecx
imul ebp, eax
add edi, ebp
add ebx, ecx
inc eax
add edx, 4
cmp eax, esi
jl 0x42513b
mov dword [esp + 0x18], ebx
mov dword [esp + 0x10], edi
fild dword [esp + 0x10]
fidiv dword [esp + 0x18]
fld st(0)
fadd st(2)
fadd qword [0x4add68]
fmul qword [0x4a9fb0]
call fcn.00412290
mov dword [esp + 0x28], eax
fild dword [esp + 0x28]
fld st(2)
fadd st(0), st(0)
fsub st(1)
fadd qword [0x4a9fb0]
call fcn.00412290
fld st(1)
fadd st(0), st(0)
mov dword [esp + 0x2c], eax
fsub st(1)
fadd qword [0x4a9fb0]
call fcn.00412290
fstp st(0)
fxch st(1)
mov dword [esp + 0x10], eax
fmul qword [0x4ae080]
fadd qword [0x4a9fb0]
call fcn.00412290
fmul qword [0x4ae080]
mov dword [esp + 0x40], eax
fadd qword [0x4a9fb0]
call fcn.00412290
mov ebp, dword [esp + 0x14]
mov dword [esp + 0x44], eax
jmp 0x425278
mov eax, esi
cdq
and edx, 0xf
add eax, edx
mov ecx, eax
mov eax, edi
cdq
and edx, 0xf
add eax, edx
mov edx, dword [esp + 0x10]
sar ecx, 4
sar eax, 4
cmp esi, edx
jge 0x42521c
mov ebx, dword [esp + 0x2c]
cmp esi, ebx
jle 0x42521c
cmp edi, ebx
jle 0x42521c
cmp esi, dword [esp + 0x28]
mov ecx, dword [esp + 0x44]
jg 0x425216
mov ecx, dword [esp + 0x40]
cmp edi, edx
jge 0x42521c
mov eax, ecx
mov esi, dword [esp + 0x1c]
mov edx, dword [esi + 0x808]
test edx, edx
je 0x425254
test ecx, ecx
jle 0x425240
mov edx, dword [esi + 0x808]
mov byte [edx + ebp], 0xff
inc ebp
dec ecx
mov dword [esp + 0x14], ebp
jne 0x42522e
test eax, eax
jle 0x42525c
mov ecx, dword [esi + 0x808]
mov byte [ecx + ebp], 0
inc ebp
dec eax
jne 0x425244
jmp 0x425258
add eax, ecx
add ebp, eax
mov dword [esp + 0x14], ebp
cmp dword [esp + 0x24], 1
jne 0x425278
push ebp
call fcn.00497ba0
add esp, 4
xor ebp, ebp
mov dword [esi + 0x808], eax
mov dword [esp + 0x14], ebp
mov eax, dword [esp + 0x24]
inc eax
cmp eax, 3
mov dword [esp + 0x24], eax
jl 0x424f03
mov edx, dword [esp + 0x20]
push edx
call fcn.00496e03
mov eax, dword [esp + 0x34]
push eax
call fcn.00496e03
add esp, 8
mov ecx, dword [esp + 0x5c]
push ecx
call fcn.00496e03
add esp, 4
pop ebp
mov eax, dword [esp + 0x10]
pop ebx
pop edi
pop esi
add esp, 0x9c
ret 4
pop edi
xor eax, eax
pop esi
add esp, 0x9c
ret 4