Function at 0x408c9f
Capabilities:
Encrypt data using rc4 ksa
Terminate process

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x28
mov eax, dword [0x6b0d44]
xor eax, esp
mov dword [esp + 0x24], eax
mov eax, dword [ebp + 8]
push esi
push edi
push 4
mov esi, ecx
mov dword [esp + 0x1c], edx
mov ecx, dword [ebp + 0xc]
pop edi
mov dword [esp + 8], esi
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], ecx
cmp edx, edi
jge 0x408cdb
xor eax, eax
jmp 0x4092cf
push ecx
mov edx, eax
xor ecx, ecx
call fcn.00408a8a
movzx eax, word [esi]
mov edi, dword [sym.imp.WS2_32.dll_ntohs]
pop ecx
push eax
call edi
movzx eax, ax
mov dword [esp + 0x20], eax
movzx eax, word [esi + 2]
push eax
call edi
movzx edi, ax
mov eax, edi
mov dword [esp + 0x14], eax
cmp eax, dword [esp + 0x18]
jg 0x408cd4
mov eax, dword [esp + 0x20]
movzx eax, ax
cmp eax, 0xb
ja 0x4090ad
je 0x40909b
sub eax, 1
je 0x409081
sub eax, 1
je 0x408f06
sub eax, 3
je 0x408e97
sub eax, 1
jne 0x4092cb
push 4
pop eax
cmp di, ax
jne 0x4092cb
mov esi, dword [sym.imp.WS2_32.dll_htons]
push 7
call esi
push 8
mov word [esp + 0x24], ax
call esi
mov word [esp + 0x22], ax
movzx eax, word [0x76a488]
push eax
call esi
mov word [esp + 0x24], ax
movzx eax, word [0x76a4c8]
push eax
call esi
mov edi, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
push edi
mov word [esp + 0x2a], ax
lea eax, [esp + 0x24]
push 8
push eax
call esi
add esp, 0xc
mov edx, edi
mov ecx, esi
call fcn.00408943
mov ecx, dword [0x76a4a4]
test ecx, ecx
jne 0x408e56
mov eax, dword [0x76a4bc]
mov edi, 0x225
push edi
push 0x6b4b7c
shl eax, 2
push 1
push eax
call fcn.005ce020
mov ecx, eax
add esp, 0x10
mov dword [0x76a4a4], ecx
test ecx, ecx
je 0x4092e0
mov edx, dword [0x76a4bc]
xor esi, esi
test edx, edx
jle 0x4092cb
inc edi
mov eax, dword [0x76a4c4]
push edi
push 0x6b4c00
shl eax, 3
push 1
push eax
call fcn.005ce020
mov ecx, dword [0x76a4a4]
add esp, 0x10
mov dword [ecx + esi*4], eax
test eax, eax
je 0x408e29
mov edx, dword [0x76a4bc]
inc esi
cmp esi, edx
jl 0x408df6
jmp 0x408e5c
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov esi, 0xfe
mov edx, 0x6b4c20
push esi
push edi
xor ecx, ecx
call fcn.0047145c
add esp, 0xc
push edi
push 0x6b4c40
push 0x6b4c60
jmp 0x409308
mov edx, dword [0x76a4bc]
test edx, edx
jle 0x4092cb
mov edi, dword [0x76a4c4]
push 4
pop eax
xor esi, esi
test edi, edi
jle 0x408e8b
mov eax, dword [ecx]
mov dword [eax + esi*8], 0xff
mov eax, dword [ecx]
mov byte [eax + esi*8 + 4], 0
inc esi
cmp esi, edi
jl 0x408e73
push 4
pop eax
add ecx, eax
sub edx, 1
jne 0x408e6d
jmp 0x4092cb
cmp edi, 0xa
jb 0x408ec1
movzx eax, word [esi + 8]
push eax
call dword [sym.imp.WS2_32.dll_ntohs]
mov ecx, dword [0x76a4a8]
movzx edx, ax
lea eax, [edx - 0x14]
cmp eax, 0x1374
cmovbe ecx, edx
mov dword [0x76a4a8], ecx
cmp edi, 8
jb 0x408eeb
movzx eax, word [esi + 6]
push eax
call dword [sym.imp.WS2_32.dll_ntohs]
mov ecx, dword [0x6b4e3c]
movzx edx, ax
lea eax, [edx - 0x40]
cmp eax, 0xfc0
cmovbe ecx, edx
mov dword [0x6b4e3c], ecx
cmp edi, 6
jb 0x4092cb
movsx edx, byte [esi + 5]
movsx ecx, byte [esi + 4]
call fcn.0040b2e5
jmp 0x4092cb
push 0xc
pop eax
cmp edi, 0xa
je 0x408f17
cmp di, ax
jne 0x4092cb
movzx eax, word [esi + 6]
push eax
mov dword [0x76a470], 1
call dword [sym.imp.WS2_32.dll_ntohs]
movd xmm0, dword [0x6b4e40]
movzx eax, ax
cvtdq2pd xmm0, xmm0
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movzx eax, word [esi + 8]
push eax
mulsd xmm1, qword [0x69ee10]
divsd xmm1, xmm0
movsd qword [esp + 0x24], xmm1
call dword [sym.imp.WS2_32.dll_ntohs]
movd xmm0, dword [0x6b4e40]
mov ecx, dword [0x76a4b4]
movzx eax, ax
cvtdq2pd xmm0, xmm0
mov edx, dword [0x76a494]
push 0xc
movd xmm4, eax
cvtdq2pd xmm4, xmm4
mov eax, dword [0x76a4b0]
sub eax, dword [0x76a474]
movd xmm1, ecx
mulsd xmm4, qword [0x69ee10]
cvtdq2pd xmm1, xmm1
divsd xmm4, xmm0
movd xmm0, dword [0x76a49c]
cvtdq2pd xmm0, xmm0
movd xmm5, eax
divsd xmm1, xmm0
mov eax, dword [0x76a4a0]
sub eax, dword [0x76a4cc]
movd xmm0, dword [0x76a48c]
cvtdq2pd xmm5, xmm5
cvtdq2pd xmm0, xmm0
andps xmm5, xmmword [0x69ef70]
addsd xmm5, qword [esp + 0x24]
movd xmm6, eax
cvtdq2pd xmm6, xmm6
pop eax
mulsd xmm5, xmm1
movd xmm1, edx
andps xmm6, xmmword [0x69ef70]
addsd xmm6, xmm4
mulsd xmm5, qword [0x69ee30]
cvtdq2pd xmm1, xmm1
movsd qword [esp + 0x20], xmm5
divsd xmm1, xmm0
mulsd xmm6, xmm1
mulsd xmm6, qword [0x69ee30]
movsd qword [esp + 0x18], xmm6
cmp di, ax
jne 0x409051
movzx eax, word [esi + 0xa]
push eax
call dword [sym.imp.WS2_32.dll_ntohs]
mov ecx, dword [0x76a4b4]
mov edx, dword [0x76a494]
movsd xmm5, qword [esp + 0x20]
movsd xmm6, qword [esp + 0x18]
movzx eax, ax
jmp 0x409053
xor eax, eax
movd xmm0, edx
mov edx, eax
cvtdq2pd xmm0, xmm0
divsd xmm6, xmm0
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
movzx ecx, byte [esi + 5]
movaps xmm3, xmm6
divsd xmm5, xmm0
movaps xmm2, xmm5
call fcn.0040829e
jmp 0x4092cb
cmp edi, 6
jne 0x4092cb
movsx edx, byte [esi + 4]
mov cl, byte [esi + 5]
call fcn.0040830b
jmp 0x4092cb
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
call fcn.00408943
jmp 0x4092cb
sub eax, 0xc
je 0x4092a7
sub eax, 1
je 0x409287
sub eax, 1
je 0x409248
sub eax, 1
jne 0x4092cb
mov al, byte [esi + 4]
cmp al, 1
jne 0x4091fa
push dword [esi + 6]
call dword [sym.imp.WS2_32.dll_ntohl]
mov dword [esp + 0x18], eax
movzx eax, word [esi + 0xa]
push eax
call dword [sym.imp.WS2_32.dll_ntohs]
movzx esi, word [0x6b4e40]
movzx edi, ax
mov eax, dword [esp + 8]
shl edi, 0xa
movzx eax, word [eax + 0xc]
push eax
call dword [sym.imp.WS2_32.dll_ntohs]
movzx eax, ax
xor edx, edx
shl eax, 0xa
mov dword [esp + 0x20], eax
mov eax, dword [0x76a4b0]
sub eax, dword [0x76a474]
movd xmm1, dword [0x76a4b4]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
mov eax, edi
cvtdq2pd xmm0, xmm0
div esi
andps xmm0, xmmword [0x69ef70]
xor edx, edx
cvttsd2si ecx, xmm0
movd xmm0, dword [0x76a49c]
cvtdq2pd xmm0, xmm0
add cx, ax
movzx eax, cx
movzx ecx, word [0x6b4e40]
movd xmm2, eax
divsd xmm1, xmm0
cvtdq2pd xmm2, xmm2
mulsd xmm2, xmm1
movd xmm1, dword [0x76a494]
cvtdq2pd xmm1, xmm1
mulsd xmm2, qword [0x69ee30]
cvttsd2si eax, xmm2
movzx edi, ax
mov eax, dword [0x76a4a0]
sub eax, dword [0x76a4cc]
movd xmm0, eax
mov eax, dword [esp + 0x20]
cvtdq2pd xmm0, xmm0
div ecx
andps xmm0, xmmword [0x69ef70]
cvttsd2si esi, xmm0
mov edx, dword [esp + 0x18]
movd xmm0, dword [0x76a48c]
cvtdq2pd xmm0, xmm0
add si, ax
movzx eax, si
movd xmm2, eax
divsd xmm1, xmm0
cvtdq2pd xmm2, xmm2
mulsd xmm2, xmm1
mulsd xmm2, qword [0x69ee30]
cvttsd2si eax, xmm2
movzx eax, ax
push eax
mov eax, dword [esp + 0xc]
push edi
mov cl, byte [eax + 5]
call fcn.00408479
pop ecx
jmp 0x409215
cmp al, 2
jne 0x4092cb
push dword [0x6b4e40]
mov edx, edi
lea ecx, [esi + 5]
add edx, 0xfffffffb
call fcn.0040850b
pop ecx
cmp eax, 1
jne 0x4092cb
mov esi, dword [sym.imp.WS2_32.dll_htons]
push 0xf
call esi
push 4
mov word [esp + 0xc], ax
pop eax
push eax
call esi
mov edi, dword [esp + 0xc]
push edi
push 4
mov word [esp + 0x12], ax
pop eax
push eax
lea eax, [esp + 0x10]
jmp 0x40927b
call fcn.00408386
mov esi, dword [sym.imp.WS2_32.dll_htons]
push 0xe
movzx edi, ax
call esi
push 6
mov word [esp + 0x24], ax
call esi
push edi
mov word [esp + 0x26], ax
call esi
mov edi, dword [esp + 0xc]
push edi
mov word [esp + 0x28], ax
lea eax, [esp + 0x24]
push 6
mov esi, dword [esp + 0x18]
push eax
call esi
add esp, 0xc
jmp 0x4092cb
movzx eax, word [esi + 4]
push eax
call dword [sym.imp.WS2_32.dll_ntohs]
movzx ecx, ax
lea eax, [ecx - 0x14]
cmp eax, 0x1374
ja 0x4092cb
mov dword [0x76a4a8], ecx
jmp 0x4092cb
cmp edi, 6
jb 0x4092cb
movzx eax, word [esi + 4]
push eax
call dword [sym.imp.WS2_32.dll_ntohs]
movzx ecx, ax
xor eax, eax
cmp ecx, 0xffff
cmove ecx, eax
mov dword [0x76a478], ecx
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x2c]
pop edi
pop esi
xor ecx, esp
call fcn.0059b3f0
mov esp, ebp
pop ebp
ret
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov esi, 0xfe
mov edx, 0x6b4b9c
push esi
push edi
xor ecx, ecx
call fcn.0047145c
add esp, 0xc
push edi
push 0x6b4bbc
push 0x6b4bdc
call fcn.004010b4
add esp, 0xc
push esi
call fcn.005aae60
int3