Function at 0x40c0b3
Capabilities:
Contain obfuscated stackstrings
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x1b8
mov eax, dword [ebp + 8]
mov byte [esp + 0x23], 0
mov al, byte [esp + 0x60]
mov byte [esp + 0x64], al
mov byte [esp + 0x128], 0xf5
mov byte [esp + 0x129], 0xfc
mov byte [esp + 0x12a], 0xec
mov byte [esp + 0x12b], 0xd4
mov byte [esp + 0x12c], 0xe6
mov byte [esp + 0x12d], 0xf6
mov byte [esp + 0x12e], 0xf2
mov byte [esp + 0x12f], 0xf0
mov byte [esp + 0x130], 0x1e
mov dword [esp + 0x139], 0
mov dword [esp + 0x135], 0
mov dword [esp + 0x131], 0
mov dword [esp + 0x24], 0
mov eax, dword [esp + 0x24]
cmp eax, 0x15
jae 0x40c1aa
jmp 0x40c14e
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x24]
movzx ecx, byte [esp + ecx + 0x128]
mov edx, eax
add edx, 0x8a5dd9d3
mov esi, ecx
not esi
mov edi, edx
or edi, esi
and edx, ecx
add edi, edx
neg edi
lea eax, [eax + edi - 0x75a2262e]
pop ebp
mov cl, byte [ecx + 0x1782484]
add byte [eax], al
mov eax, dword [esp + 0x178]
add al, 0x3b
mov ecx, dword [esp + 0x24]
mov byte [esp + ecx + 0x128], al
mov eax, dword [esp + 0x24]
inc eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x24]
or dword [esi], 4
jmp 0x40c220
cmpsb byte [esi], byte es:[edi]
jmp 0x40c1ad
lea eax, [esp + 0x197]
lea edx, [esp + 0x128]
mov edi, eax
mov ecx, 2
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0x19f]
lea edx, [esp + 0x130]
xor ecx, ecx
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
mov cl, byte [esp + 0x130]
mov byte [esp + 0x19f], cl
mov cl, byte [esp + 0x5c]
mov byte [esp + 0x68], cl
mov byte [esp + 0x80], 0x9b
mov byte [esp + 0x81], 0x41
mov byte [esp + 0x82], 0xb1
mov byte [esp + 0x83], 0x43
mov byte [esp + 0x84], 0xb4
mov byte [esp + 0x85], 0x5d
test dword [eax], eax
add byte [eax], al
pop ebp
mov byte [esp + 0x86], 0xd0
mov byte [esp + 0x87], 0x5f
mov byte [esp + 0x88], 0xa1
mov byte [esp + 0x89], 0x59
mov byte [esp + 0x8a], 0xae
add byte [esi - 0x74db7b3a], ch
add byte [eax], al
add byte [ebx - 0x3a], bl
test byte [esp + ecx*4], ah
add byte [eax], al
add dh, dl
mov byte [esp + 0x8d], 0x55
mov byte [esp + 0x8e], 0x63
mov byte [esp + 0x8f], 0x57
mov byte [esp + 0x90], 0xba
mov byte [esp + 0x91], 0x51
mov byte [esp + 0x92], 0xdb
mov byte [esp + 0x93], 0x53
mov byte [esp + 0x94], 0xa2
mov byte [esp + 0x95], 0x6d
mov byte [esp + 0x96], 0x93
mov byte [esp + 0x97], 0x6f
mov byte [esp + 0x98], 0xa4
mov byte [esp + 0x99], 0x69
mov byte [esp + 0x9a], 0x48
mov byte [esp + 0x9b], 0x6b
mov byte [esp + 0x9c], 0x89
mov byte [esp + 0x9d], 0x65
mov byte [esp + 0x9e], 0x94
mov byte [esp + 0x9f], 0x67
mov byte [esp + 0xa0], 0x96
mov byte [esp + 0xa1], 0x61
mov byte [esp + 0xa2], 0x94
mov byte [esp + 0xa3], 0x63
mov byte [esp + 0xa4], 0x99
mov byte [esp + 0xa5], 0x7d
mov byte [esp + 0xa6], 0x81
mov byte [esp + 0xa7], 0x7f
mov byte [esp + 0xa8], 0x9d
mov byte [esp + 0xa9], 0x79
mov byte [esp + 0xaa], 0xf4
mov byte [esp + 0xab], 0x7b
mov byte [esp + 0xac], 0x81
mov byte [esp + 0xad], 0x75
mov byte [esp + 0xae], 0x85
mov byte [esp + 0xaf], 0x77
mov byte [esp + 0xb0], 0x80
mov byte [esp + 0xb1], 0x71
mov byte [esp + 0xb2], 0x41
mov byte [esp + 0xb3], 0x73
mov byte [esp + 0xb4], 0xe
and al, 0xae
add byte [eax], al
add byte [ebp - 0x50db7b3a], al
add byte [eax], al
add byte [edi - 0x3a], dh
test byte [eax + esi*4], ah
add byte [eax], al
add byte [eax - 0x4edb7b3a], al
add byte [eax], al
add byte [ecx - 0x3a], dh
test byte [edx + esi*4], ah
add byte [eax], al
add byte [ecx - 0x3a], al
test byte [ebx + esi*4], ah
add byte [eax], al
add byte [ebx - 0x3a], dh
test byte [esp + esi*4], ah
add byte [eax], al
add byte [esi], cl
add al, 0xeb
jp 0x40c367
test byte [esi*4 + 0xd000000], ah
mov byte [esp + 0xb6], 0x3b
mov byte [esp + 0xb7], 0xf
mov byte [esp + 0xb8], 0x87
mov byte [esp + 0xb9], 9
mov byte [esp + 0xba], 0x81
mov byte [esp + 0xbb], 0xb
and al, 0xba
add byte [eax], al
add byte [ecx - 0x44db7b3a], al
add byte [eax], al
add byte [ebx], cl
mov byte [esp + 0xbc], 0x83
mov byte [esp + 0xbd], 5
mov byte [esp + 0xbe], 0x33
mov byte [esp + 0xbf], 7
mov byte [esp + 0xc0], 0xe
add al, 0xeb
js 0x40c3ca
test byte [ecx + eax*8], ah
add byte [eax], al
add byte [ecx], al
mov byte [esp + 0xc2], 0xf1
mov byte [esp + 0xc3], 3
mov byte [esp + 0xc4], 0xf0
mov byte [esp + 0xc5], 0x1d
mov byte [esp + 0xc6], 0xeb
mov byte [esp + 0xc7], 0x1f
mov byte [esp + 0xc8], 0x29
mov byte [esp + 0xc9], 0x19
mov byte [esp + 0xca], 0x97
mov byte [esp + 0xcb], 0x1b
mov byte [esp + 0xcc], 0xe8
mov byte [esp + 0xcd], 0x15
mov byte [esp + 0xce], 0xe0
mov byte [esp + 0xcf], 0x17
mov byte [esp + 0xd0], 0xe9
mov byte [esp + 0xd1], 0x11
mov byte [esp + 0xd2], 0xe6
mov byte [esp + 0xd3], 0x13
mov byte [esp + 0xd4], 0xef
mov byte [esp + 0xd5], 0x2d
mov byte [esp + 0xd6], 0xdd
mov byte [esp + 0xd7], 0x2f
mov byte [esp + 0xd8], 0xd2
mov byte [esp + 0xd9], 0x29
mov byte [esp + 0xda], 0xd7
mov byte [esp + 0xdb], 0x2b
mov byte [esp + 0xdc], 0xd6
mov byte [esp + 0xdd], 0x25
mov byte [esp + 0xde], 0x33
mov byte [esp + 0xdf], 0x27
mov byte [esp + 0xe0], 0x3c
mov byte [esp + 0xe1], 0x21
mov byte [esp + 0xe2], 0x20
mov byte [esp + 0xe3], 0x23
mov dword [esp + 0xeb], 0
mov dword [esp + 0xe8], 0
mov dword [esp + 0xe4], 0
mov dword [esp + 0x28], 0
mov ecx, dword [esp + 0x28]
or dword [esi], 4
jmp 0x40c5c6
and al, 0x40
add dword [eax], eax
add byte [edi], bh
mov byte [esp + 0x141], 0xd
mov byte [esp + 0x142], 0x6b
mov byte [esp + 0x143], 0xb
mov byte [esp + 0x144], pe_nt_image_headers32
mov byte [esp + 0x145], 9
mov byte [esp + 0x146], 0x7f
mov byte [esp + 0x147], 7
mov byte [esp + 0x148], 4
mov byte [esp + 0x149], 5
mov dword [esp + 0x151], 0
mov dword [esp + 0x14e], 0
mov dword [esp + 0x14a], 0
mov dword [esp + 0x2c], 0
mov ecx, dword [esp + 0x2c]
or dword [esi], 4
jmp 0x40c6bf
and al, 4
mov dword [esp + 8], esi
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 8
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], 0
call fcn.0040d33e
test al, 1
jne 0x40c6eb
jmp 0x40cbf6
mov al, byte [esp + 0x54]
mov byte [esp + 0x70], al
mov byte [esp + 0x168], 0x1f
mov byte [esp + 0x169], 2
mov byte [esp + 0x16a], 0x72
mov dword [esp + 0x16f], 0
mov dword [esp + 0x16b], 0
mov dword [esp + 0x30], 0
mov eax, dword [esp + 0x30]
cmp eax, 0xb
jae 0x40c797
jmp 0x40c734
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x30]
add al, ah
dec esi
xor byte [ebx + 0x30244c], cl
loopne 0x40c78d
mov bh, 0xb6
mov word [eax + ebp*2], cs
add dword [eax], eax
add byte [ecx + 0x6ee281c2], cl
and al, byte [ebx + 0x226e35c9]
or dword [ecx - 0x73], 0x14
push eax
mov eax, edx
add eax, ecx
and edx, ecx
add edx, edx
mov ecx, edx
xor ecx, eax
not edx
and eax, edx
add eax, eax
sub eax, ecx
mov dword [esp + 0x184], eax
mov eax, dword [esp + 0x184]
add al, 0xfe
mov ecx, dword [esp + 0x30]
mov byte [esp + ecx + 0x168], al
mov eax, dword [esp + 0x30]
inc eax
mov dword [esp + 0x30], eax
and al, 0x30
mov eax, dword [esp + 0x30]
cmp eax, 0xb
jb 0x40c737
lahf
jmp 0x40c79a
mov eax, dword [esp + 0x44]
lea ecx, [esp + 0x168]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0040ee31
cmp eax, 0
jne 0x40c7c0
mov byte [esp + 0x23], 1
jmp 0x40cbeb
mov al, byte [esp + 0x50]
mov byte [esp + 0x74], al
mov byte [esp + 0x110], 0x3b
mov byte [esp + 0x111], 0xe
mov byte [esp + 0x112], 9
mov byte [esp + 0x113], 0x3f
mov byte [esp + 0x114], 5
mov byte [esp + 0x115], 0
mov byte [esp + 0x116], 2
mov byte [esp + 0x117], 0x8f
lea eax, [esp + 0x110]
add eax, 8
xor ecx, ecx
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 5
call fcn.00409e01
mov dword [esp + 0x34], 0
mov eax, dword [esp + 0x34]
cmp eax, 0xd
jae 0x40c890
jmp 0x40c83f
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x34]
xor al, 0x8b
dec esp
and al, 0x34
add al, ah
dec esi
mov bh, 0xb6
mov word [eax + edx], cs
add dword [eax], eax
add byte [ecx + 0x19c283c2], cl
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0x99422619
mov dword [esp + 0x188], eax
mov eax, dword [esp + 0x188]
add al, 0x51
mov ecx, dword [esp + 0x34]
mov byte [esp + ecx + 0x110], al
mov eax, dword [esp + 0x34]
inc eax
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x34]
cmp eax, 0xd
jb 0x40c842
mov cl, 0xeb
add byte [ebx - 0x72bbdbbc], cl
mov word [eax + edx], fs
add dword [eax], eax
add byte [ecx + 0x4c892404], cl
and al, 4
jmp 0x40c893
mov eax, dword [esp + 0x44]
lea ecx, [esp + 0x110]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0040d2c4
cmp eax, 0
add al, ah
dec esi
mov bh, 0x95
shr bl, 0
test al, 1
jne 0x40c8be
jmp 0x40cbef
mov al, byte [esp + 0x4c]
mov byte [esp + 0x78], al
mov byte [esp + 0xf0], 0x8e
mov byte [esp + 0xf1], 0x90
mov byte [esp + 0xf2], 0x8f
mov byte [esp + 0xf3], 0x96
mov byte [esp + 0xf4], 0xf9
mov byte [esp + 0xf5], 0xd7
add byte [eax], al
xlatb
mov byte [esp + 0xf6], 0x97
mov byte [esp + 0xf7], 0x83
mov byte [esp + 0x78eb040e], 0
add byte [eax], al
mov bh, 0xc6
test byte [ecx + edi*8], ah
add byte [eax], al
add byte [edx - 0x5db7b3a], dh
add byte [eax], al
add al, ch
mov byte [esp + 0x7beb040e], 0
add byte [eax], al
jmp 0x40c8f3
ret
mov dword [eax], 0x44c60000
and al, 0x23
add ebx, ebp
add byte [ebx - 0x76bbdbbc], cl
add al, 0x24
and eax, dword [ecx]