Function at 0x40c8d9
Capabilities:
Encrypt data using rc4 ksa
Enumerate pe sections
Terminate process

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x28
mov eax, dword [0x6d1d44]
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 + 0x10], esi
mov dword [esp + 0xc], eax
mov dword [esp + 8], ecx
cmp edx, edi
jge 0x40c915
xor eax, eax
jmp 0x40cfb8
push ecx
mov edx, eax
xor ecx, ecx
call fcn.0040c6c6
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 0x40c90e
mov eax, dword [esp + 0x20]
movzx eax, ax
cmp eax, 0x55
ja 0x40cf41
je 0x40cf1a
cmp eax, 0xb
ja 0x40ccf2
je 0x40cce0
sub eax, 1
je 0x40ccc6
sub eax, 1
je 0x40cb4f
sub eax, 3
je 0x40cae0
sub eax, 1
jne 0x40cfb4
push 4
pop eax
cmp di, ax
jne 0x40cfb4
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 [0x74c994]
push eax
call esi
mov word [esp + 0x24], ax
movzx eax, word [0x74c9dc]
push eax
call esi
mov edi, dword [esp + 8]
mov esi, dword [esp + 0xc]
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.0040c515
mov ecx, dword [0x74c9b4]
test ecx, ecx
jne 0x40ca9f
mov eax, dword [0x74c9d0]
mov edi, 0x21f
push edi
push 0x6d74e0
shl eax, 2
push 1
push eax
call fcn.005ed7c0
mov ecx, eax
add esp, 0x10
mov dword [0x74c9b4], ecx
test ecx, ecx
je 0x40cfc9
mov edx, dword [0x74c9d0]
xor esi, esi
test edx, edx
jle 0x40cfb4
inc edi
mov eax, dword [0x74c9d8]
push edi
push 0x6d7564
shl eax, 3
push 1
push eax
call fcn.005ed7c0
mov ecx, dword [0x74c9b4]
add esp, 0x10
mov dword [ecx + esi*4], eax
test eax, eax
je 0x40ca72
mov edx, dword [0x74c9d0]
inc esi
cmp esi, edx
jl 0x40ca3f
jmp 0x40caa5
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov esi, 0xfe
mov edx, 0x6d7584
push esi
push edi
xor ecx, ecx
call fcn.0048cac3
add esp, 0xc
push edi
push 0x6d75a4
push 0x6d75c4
jmp 0x40cff1
mov edx, dword [0x74c9d0]
test edx, edx
jle 0x40cfb4
mov edi, dword [0x74c9d8]
push 4
pop eax
xor esi, esi
test edi, edi
jle 0x40cad4
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 0x40cabc
push 4
pop eax
add ecx, eax
sub edx, 1
jne 0x40cab6
jmp 0x40cfb4
cmp edi, 0xa
jb 0x40cb0a
movzx eax, word [esi + 8]
push eax
call dword [sym.imp.WS2_32.dll_ntohs]
mov ecx, dword [0x74c9b8]
movzx edx, ax
lea eax, [edx - 0x14]
cmp eax, 0x1374
cmovbe ecx, edx
mov dword [0x74c9b8], ecx
cmp edi, 8
jb 0x40cb34
movzx eax, word [esi + 6]
push eax
call dword [sym.imp.WS2_32.dll_ntohs]
mov ecx, dword [0x6d77b4]
movzx edx, ax
lea eax, [edx - 0x40]
cmp eax, 0xfc0
cmovbe ecx, edx
mov dword [0x6d77b4], ecx
cmp edi, 6
jb 0x40cfb4
movsx edx, byte [esi + 5]
movsx ecx, byte [esi + 4]
call fcn.0040f029
jmp 0x40cfb4
push 0xc
pop eax
cmp edi, 0xa
je 0x40cb60
cmp di, ax
jne 0x40cfb4
movzx eax, word [esi + 6]
push eax
mov dword [0x74c97c], 1
call dword [sym.imp.WS2_32.dll_ntohs]
movd xmm0, dword [0x6d77b8]
movzx eax, ax
cvtdq2pd xmm0, xmm0
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movzx eax, word [esi + 8]
push eax
mulsd xmm1, qword [0x6c0448]
divsd xmm1, xmm0
movsd qword [esp + 0x24], xmm1
call dword [sym.imp.WS2_32.dll_ntohs]
movd xmm0, dword [0x6d77b8]
mov edx, dword [0x74c9c4]
movzx eax, ax
cvtdq2pd xmm0, xmm0
push 0xc
movd xmm4, eax
cvtdq2pd xmm4, xmm4
mov eax, dword [0x74c9c0]
sub eax, dword [0x74c980]
movd xmm1, edx
mulsd xmm4, qword [0x6c0448]
cvtdq2pd xmm1, xmm1
divsd xmm4, xmm0
movd xmm0, dword [0x74c9ac]
cvtdq2pd xmm0, xmm0
movd xmm5, eax
divsd xmm1, xmm0
mov eax, dword [0x74c9b0]
sub eax, dword [0x74c9e0]
movd xmm0, dword [0x74c998]
cvtdq2pd xmm5, xmm5
cvtdq2pd xmm0, xmm0
andps xmm5, xmmword [0x6c05a0]
addsd xmm5, qword [esp + 0x24]
movd xmm6, eax
cvtdq2pd xmm6, xmm6
pop eax
mulsd xmm5, xmm1
movd xmm1, dword [0x74c9a4]
andps xmm6, xmmword [0x6c05a0]
addsd xmm6, xmm4
mulsd xmm5, qword [0x6c0468]
cvtdq2pd xmm1, xmm1
movsd qword [esp + 0x20], xmm5
divsd xmm1, xmm0
mulsd xmm6, xmm1
mulsd xmm6, qword [0x6c0468]
movsd qword [esp + 0x18], xmm6
cmp di, ax
jne 0x40cc92
movzx eax, word [esi + 0xa]
push eax
call dword [sym.imp.WS2_32.dll_ntohs]
mov edx, dword [0x74c9c4]
movsd xmm5, qword [esp + 0x20]
movsd xmm6, qword [esp + 0x18]
movzx eax, ax
jmp 0x40cc94
xor eax, eax
movd xmm2, dword [0x74c9a4]
cvtdq2pd xmm2, xmm2
movzx ecx, byte [esi + 5]
divsd xmm6, xmm2
movd xmm2, edx
mov edx, eax
cvtdq2pd xmm2, xmm2
movaps xmm1, xmm6
divsd xmm5, xmm2
movaps xmm0, xmm5
call fcn.0040be3b
jmp 0x40cfb4
cmp edi, 6
jne 0x40cfb4
movsx edx, byte [esi + 4]
mov cl, byte [esi + 5]
call fcn.0040bea3
jmp 0x40cfb4
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0xc]
call fcn.0040c515
jmp 0x40cfb4
sub eax, 0xc
je 0x40ceef
sub eax, 1
je 0x40cec8
sub eax, 1
je 0x40ce90
sub eax, 1
jne 0x40cfb4
mov al, byte [esi + 4]
cmp al, 1
jne 0x40ce3f
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 [0x6d77b8]
movzx edi, ax
mov eax, dword [esp + 0x10]
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 [0x74c9c0]
sub eax, dword [0x74c980]
movd xmm1, dword [0x74c9c4]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
mov eax, edi
cvtdq2pd xmm0, xmm0
div esi
andps xmm0, xmmword [0x6c05a0]
xor edx, edx
cvttsd2si ecx, xmm0
movd xmm0, dword [0x74c9ac]
cvtdq2pd xmm0, xmm0
add cx, ax
movzx eax, cx
movzx ecx, word [0x6d77b8]
movd xmm2, eax
divsd xmm1, xmm0
cvtdq2pd xmm2, xmm2
mulsd xmm2, xmm1
movd xmm1, dword [0x74c9a4]
cvtdq2pd xmm1, xmm1
mulsd xmm2, qword [0x6c0468]
cvttsd2si eax, xmm2
movzx edi, ax
mov eax, dword [0x74c9b0]
sub eax, dword [0x74c9e0]
movd xmm0, eax
mov eax, dword [esp + 0x20]
cvtdq2pd xmm0, xmm0
div ecx
andps xmm0, xmmword [0x6c05a0]
cvttsd2si esi, xmm0
mov edx, dword [esp + 0x18]
movd xmm0, dword [0x74c998]
cvtdq2pd xmm0, xmm0
add si, ax
movzx eax, si
movd xmm2, eax
divsd xmm1, xmm0
cvtdq2pd xmm2, xmm2
mulsd xmm2, xmm1
mulsd xmm2, qword [0x6c0468]
cvttsd2si eax, xmm2
movzx eax, ax
push eax
mov eax, dword [esp + 0x14]
push edi
mov cl, byte [eax + 5]
call fcn.0040c078
pop ecx
jmp 0x40ce5a
cmp al, 2
jne 0x40cfb4
push dword [0x6d77b8]
mov edx, edi
lea ecx, [esi + 5]
add edx, 0xfffffffb
call fcn.0040c10a
pop ecx
cmp eax, 1
jne 0x40cfb4
mov esi, dword [sym.imp.WS2_32.dll_htons]
push 0xf
call esi
push 4
mov word [esp + 0x14], ax
pop eax
push eax
call esi
mov edi, dword [esp + 8]
push edi
push 4
mov word [esp + 0x1a], ax
pop eax
push eax
lea eax, [esp + 0x18]
jmp 0x40cfaa
call fcn.0040bf7e
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 + 8]
push edi
mov word [esp + 0x28], ax
lea eax, [esp + 0x24]
push 6
jmp 0x40cfaa
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 0x40cfb4
mov dword [0x74c9b8], ecx
jmp 0x40cfb4
cmp edi, 6
jb 0x40cfb4
movzx eax, word [esi + 4]
push eax
call dword [sym.imp.WS2_32.dll_ntohs]
movzx eax, ax
xor ecx, ecx
cmp eax, 0xffff
cmove eax, ecx
mov dword [0x74c984], eax
jmp 0x40cfb4
cmp edi, 7
jne 0x40cfb4
movzx ecx, byte [esi + 5]
mov eax, 0x100
movsx edx, byte [esi + 4]
imul ecx, eax
movzx eax, byte [esi + 6]
add cx, ax
call fcn.0040bf1e
jmp 0x40cfb4
cmp eax, 0x57
jne 0x40cfb4
push 5
pop eax
cmp di, ax
jne 0x40cfb4
movsx ecx, byte [esi + 4]
sub ecx, 0
je 0x40cf6e
sub ecx, 1
je 0x40cf63
sub ecx, 1
je 0x40cf7d
jmp 0x40cfb8
mov byte [0x74c9a0], 1
push 1
jmp 0x40cf77
mov byte [0x74c9a0], 0
push 0
call dword [sym.imp.USER32.dll_BlockInput]
mov esi, dword [sym.imp.WS2_32.dll_htons]
push 0x57
call esi
push 5
mov word [esp + 0x24], ax
call esi
mov edi, dword [esp + 8]
mov cl, byte [0x74c9a0]
push edi
mov word [esp + 0x26], ax
lea eax, [esp + 0x24]
mov byte [esp + 0x28], cl
push 5
mov esi, dword [esp + 0x14]
push eax
call esi
add esp, 0xc
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x2c]
pop edi
pop esi
xor ecx, esp
call fcn.005b8900
mov esp, ebp
pop ebp
ret
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov esi, 0xfe
mov edx, 0x6d7500
push esi
push edi
xor ecx, ecx
call fcn.0048cac3
add esp, 0xc
push edi
push 0x6d7520
push 0x6d7540
call fcn.00401109
add esp, 0xc
push esi
call fcn.005c8390
int3