Function at 0x40c000
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x90
mov dword [esp + 0x28], 0x448c9497
mov dword [esp + 0x2c], 0x989a9296
lea edx, [esp + 0x30]
mov byte [esp + 0x30], 0x7e
mov dword [esp + 0x31], 0
mov dword [esp + 0x1c], 0
mov eax, dword [esp + 0x1c]
cmp eax, 0xc
ja 0x40c073
nop
nop
nop
nop
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
movzx ecx, byte [esp + ecx + 0x28]
add eax, 0x14debb6
xor eax, ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
add al, 0x40
mov ecx, dword [esp + 0x1c]
mov byte [esp + ecx + 0x28], al
inc dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
cmp eax, 0xd
jb 0x40c040
lea eax, [esp + 0x1c]
lea esi, [esp + 0x28]
mov ebx, esi
mov edi, eax
mov ecx, 2
xchg esi, ebx
rep movsd dword es:[edi], dword [esi]
xchg esi, ebx
lea edi, [esp + 0x24]
xor ecx, ecx
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
movzx ecx, byte [esp + 0x30]
mov byte [esp + 0x24], cl
mov dword [esp + 0x28], 0x5eb03c1
mov dword [esp + 0x2c], 0x99c07e8
mov dword [esp + 0x30], 0xde20bef
mov dword [esp + 0x34], 0x311d0f9a
mov dword [esp + 0x38], 0x35ad33c6
mov dword [esp + 0x3c], 0x39dd37a6
mov dword [esp + 0x40], 0x3d1c3be0
mov dword [esp + 0x44], 0x21b03fdf
mov dword [esp + 0x48], 0x25c823b2
mov dword [esp + 0x4c], 0x29cb27cf
mov dword [esp + 0x50], 0x2db82bcb
mov dword [esp + 0x54], 0xd13f2fc7
mov dword [esp + 0x58], 0xd5fbd33c
mov dword [esp + 0x5c], 0xd9f5d74e
mov dword [esp + 0x60], 0xdd4bdb4d
mov dword [esp + 0x64], 0xc1eddf49
mov dword [esp + 0x68], 0xc52bc324
mov dword [esp + 0x6c], 0xc925c754
mov dword [esp + 0x70], 0xcd59cbe7
mov dword [esp + 0x74], 0xf11ccf5c
mov dword [esp + 0x78], 0xf51af317
mov dword [esp + 0x7c], 0xf917f715
mov dword [esp + 0x80], 0xfd19fb1e
mov dword [esp + 0x84], 0xe1edff1a
mov dword [esp + 0x88], 0xe5e4e3e8
mov byte [esp + 0x8c], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0x64
ja 0x40c1c0
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x28]
add ecx, 0x8771d052
xor ecx, edx
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0xc]
add cl, 0xb0
mov edx, dword [esp]
mov byte [esp + edx + 0x28], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0x65
jb 0x40c190
mov ecx, dword [esp + 0xa4]
mov dword [esp + 0xc], 0xd571d3a1
mov dword [esp + 0x10], 0x296dd764
mov dword [esp + 0x14], 0x2b28
mov byte [esp + 0x18], 0
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
cmp edx, 0xc
ja 0x40c233
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 4]
mov edi, dword [esp + 4]
movzx edi, byte [esp + edi + 0xc]
add edx, 0x4d89e9f9
xor edx, edi
mov dword [esp], edx
mov edx, dword [esp]
add dl, 0xd7
mov edi, dword [esp + 4]
mov byte [esp + edi + 0xc], dl
inc dword [esp + 4]
mov edx, dword [esp + 4]
cmp edx, 0xd
jb 0x40c200
lea edx, [esp + 4]
lea edi, [esp + 0xc]
push 0
push edx
push 8
push eax
push esi
push edi
push ecx
call fcn.0040cc80
add esp, 0x1c
test al, al
je 0x40c384
mov word [esp + 0x28], 0xc9cc
mov byte [esp + 0x2a], 0x5f
mov dword [esp + 0x2b], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 6
ja 0x40c2ae
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x28]
add eax, 0xac13fb48
xor eax, ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
add al, 0xeb
mov ecx, dword [esp]
mov byte [esp + ecx + 0x28], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 7
jb 0x40c280
xor eax, eax
mov ecx, dword [esp + 4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [ecx + eax]
mov dh, byte [esp + eax + 0x28]
test dl, dl
je 0x40c2d1
inc eax
cmp dl, dh
je 0x40c2c0
mov al, 1
mov dword [esp + 8], eax
cmp dl, dh
je 0x40c572
mov dword [esp + 0x28], 0xdfada8db
mov dword [esp + 0x2c], 0x6f9ca2a9
mov dword [esp + 0x30], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xb
ja 0x40c33e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x28]
add eax, 0x7416771a
xor eax, ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
add al, 0xb2
mov ecx, dword [esp]
mov byte [esp + ecx + 0x28], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xc
jb 0x40c310
mov eax, dword [esp + 4]
movzx ebx, byte [esp + 0x28]
test bl, bl
je 0x40c38b
mov edx, esi
mov ecx, eax
jmp 0x40c367
movzx ebx, byte [edx]
test bl, bl
je 0x40c38d
mov bh, byte [eax]
test bh, bh
je 0x40c56a
inc eax
inc edx
lea edi, [ecx + 1]
cmp bh, bl
je 0x40c37e
mov ecx, edi
mov eax, edi
je 0x40c360
mov edx, esi
jmp 0x40c360
xor eax, eax
jmp 0x40c582
mov ecx, eax
test ecx, ecx
je 0x40c56a
mov dword [esp + 0x28], 0x8a6d786e
mov dword [esp + 0x2c], 0x9d854563
mov dword [esp + 0x30], 0x4d409691
mov dword [esp + 0x34], 0x969a8c92
mov dword [esp + 0x38], 0x35486c87
mov word [esp + 0x3c], 0
mov byte [esp + 0x3e], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x16
ja 0x40c40e
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x28]
add eax, 0x2d207f7d
xor eax, ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
add al, 0x5b
mov ecx, dword [esp]
mov byte [esp + ecx + 0x28], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x17
jb 0x40c3e0
mov eax, dword [esp + 4]
movzx ecx, byte [esp + 0x28]
test cl, cl
je 0x40c454
lea edi, [esp + 0x28]
mov edx, edi
mov esi, eax
jmp 0x40c437
movzx ecx, byte [edx]
test cl, cl
je 0x40c456
mov ch, byte [eax]
test ch, ch
je 0x40c56a
inc eax
inc edx
lea ebx, [esi + 1]
cmp ch, cl
je 0x40c44e
mov esi, ebx
mov eax, ebx
je 0x40c430
mov edx, edi
jmp 0x40c430
mov esi, eax
test esi, esi
je 0x40c56a
mov word [esp + 0x28], 0x8065
mov byte [esp + 0x2a], 0x41
mov word [esp + 0x2b], 0
mov byte [esp + 0x2d], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 5
ja 0x40c4be
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x28]
add eax, 0x6ea2110a
xor eax, ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
add al, 0xb3
mov ecx, dword [esp]
mov byte [esp + ecx + 0x28], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 6
jb 0x40c490
movzx eax, byte [esp + 0x28]
test al, al
je 0x40c500
add esi, 0x13
lea ebp, [esp + 0x28]
mov ecx, ebp
mov edx, esi
mov edi, esi
jmp 0x40c4e7
movzx eax, byte [ecx]
test al, al
je 0x40c511
mov ah, byte [edx]
test ah, ah
je 0x40c56a
inc edx
inc ecx
lea ebx, [edi + 1]
cmp ah, al
je 0x40c4fa
mov edi, ebx
mov edx, ebx
je 0x40c4e0
mov ecx, ebp
jmp 0x40c4e0
mov byte [0x44875c], 1
mov eax, 0x44875e
jmp 0x40c593
test edi, edi
je 0x40c56a
mov byte [0x44875c], 1
mov dword [esp + 0x28], 0
mov eax, 0x44875e
cmp esi, edi
jae 0x40c593
xor ebx, ebx
lea ebp, [esp + 0x28]
cmp byte [esi], 0
je 0x40c58d
push ebp
push edi
push esi
call fcn.0040db90
add esp, 0xc
lea ecx, [ebx + 2]
movzx edx, word [esp + 0x28]
mov word [ebx + 0x44875e], dx
cmp ebx, 0x1fb
ja 0x40c562
add esi, eax
mov ebx, ecx
cmp esi, edi
jb 0x40c533
lea eax, [ecx + 0x44875e]
jmp 0x40c593
mov dword [esp + 8], 0
push dword [esp + 4]
call fcn.0043a780
add esp, 4
mov eax, dword [esp + 8]
add esp, 0x90
pop esi
pop edi
pop ebx
pop ebp
ret
lea eax, [ebx + 0x44875e]
mov word [eax], 0
jmp 0x40c572