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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x8c
mov dword [esp + 8], 0x569eb2b1
mov dword [esp + 0xc], 0xd2d0d4d8
lea ebp, [esp + 0x10]
mov byte [esp + 0x10], 0x68
mov dword [esp + 0x11], 0
mov dword [esp + 0x14], 0
mov eax, 0xc3f468bc
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x3c0b974c]
xor ecx, eax
mov esi, ecx
xor esi, 0xad
and ecx, 0x52
add ecx, ecx
sub ecx, esi
inc cl
mov byte [esp + eax + 0x3c0b974c], cl
inc eax
cmp eax, 0xc3f468cc
jne 0x40ee50
lea eax, [esp + 0x83]
lea esi, [esp + 8]
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 + 0x8b]
xor ebx, ebx
xor ecx, ecx
xchg esi, ebp
rep movsw word es:[edi], word [esi]
xchg esi, ebp
movzx ecx, byte [esp + 0x10]
mov byte [esp + 0x8b], cl
mov dword [esp + 8], 0x93659153
mov dword [esp + 0xc], 0xaf22ad5a
mov dword [esp + 0x10], 0xab5ca955
mov dword [esp + 0x14], 0xa793a528
mov dword [esp + 0x18], 0xa32ba14c
mov dword [esp + 0x1c], 0xbf43bd4c
mov dword [esp + 0x20], 0xbb9ab972
mov dword [esp + 0x24], 0xb746b555
mov dword [esp + 0x28], 0xb346b140
mov dword [esp + 0x2c], 0x4fad4db5
mov dword [esp + 0x30], 0x4bc649a9
mov dword [esp + 0x34], 0x47b145bd
mov dword [esp + 0x38], 0x437541b6
mov dword [esp + 0x3c], 0x5f6b5dd4
mov dword [esp + 0x40], 0x5bd559d7
mov dword [esp + 0x44], 0x576355db
mov dword [esp + 0x48], 0x53a551ae
mov dword [esp + 0x4c], 0x6f9b6d9e
mov dword [esp + 0x50], 0x6be7695d
mov dword [esp + 0x54], 0x67926596
mov dword [esp + 0x58], 0x6394619d
mov dword [esp + 0x5c], 0x7f897d9f
mov dword [esp + 0x60], 0x7b877984
mov dword [esp + 0x64], 0x77637588
mov dword [esp + 0x68], 0x7372716a
mov byte [esp + 0x6c], 0
nop
mov ecx, ebx
add cl, 0x5c
xor cl, byte [esp + ebx + 8]
add cl, 0x34
mov byte [esp + ebx + 8], cl
inc ebx
cmp ebx, 0x65
jne 0x40ef80
mov dword [esp + 0x70], 0x33533107
mov dword [esp + 0x74], 0x3f573d4c
mov word [esp + 0x78], 0x3938
mov dword [esp + 0x7a], 0
xor ecx, ecx
xor edi, edi
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + edi + 0x70]
mov ebp, ecx
and ebp, 8
mov ebx, edi
xor ebx, 0x4bd28d34
add ebx, ebp
xor ebx, edx
mov edx, ebx
and edx, 0x7b
add edx, edx
xor ebx, 4
sub edx, ebx
mov byte [esp + edi + 0x70], dl
inc edi
add ecx, 2
cmp edi, 0xe
jne 0x40efc0
lea ecx, [esp + 4]
lea edx, [esp + 0x70]
push 0
push ecx
push 8
push eax
push esi
push edx
push dword [esp + 0xb8]
call fcn.0040f980
add esp, 0x1c
xor ebx, ebx
test al, al
je 0x40f28b
mov word [esp + 8], 0x6e6d
mov byte [esp + 0xa], 0xfa
mov word [esp + 0xb], 0
mov byte [esp + 0xd], 0
mov eax, ebx
add al, 0xab
xor al, byte [esp + ebx + 8]
add al, 0xa9
mov byte [esp + ebx + 8], al
inc ebx
cmp ebx, 6
jne 0x40f030
xor ecx, ecx
mov edi, dword [esp + 4]
nop
nop
nop
nop
nop
nop
movzx eax, byte [edi + ecx]
movzx edx, byte [esp + ecx + 8]
test al, al
je 0x40f062
inc ecx
cmp al, dl
je 0x40f050
mov dword [esp], edi
mov bl, 1
cmp al, dl
je 0x40f280
mov dword [esp + 8], 0xdba9acdf
mov dword [esp + 0xc], 0x43d0ded5
mov dword [esp + 0x10], 0
mov ecx, 0x3f572ded
nop
nop
nop
nop
movzx edx, byte [esi]
xor edx, 0xd5e34a1f
mov eax, ecx
xor eax, 0x2a1cb5e0
mov edi, edx
and edi, eax
add eax, edx
add edi, edi
sub eax, edi
add al, 0xa6
mov byte [esi], al
inc esi
dec ecx
cmp ecx, 0x3f572de1
jne 0x40f090
movzx edx, byte [esp + 8]
mov ecx, dword [esp]
test dl, dl
je 0x40f105
lea eax, [esp + 8]
mov esi, eax
mov ecx, dword [esp]
mov ebp, ecx
jmp 0x40f0e7
movzx edx, byte [esi]
test dl, dl
je 0x40f105
mov dh, byte [ebp]
test dh, dh
je 0x40f27e
inc ebp
inc esi
lea edi, [ecx + 1]
cmp dh, dl
je 0x40f0ff
mov ecx, edi
mov ebp, edi
je 0x40f0e0
mov esi, eax
jmp 0x40f0e0
xor edx, edx
test ecx, ecx
je 0x40f27e
mov dword [esp + 8], 0xbeb1c4b2
mov dword [esp + 0xc], 0x51c101e7
mov dword [esp + 0x10], 0xf9fc4a4d
mov dword [esp + 0x14], 0x5a4e3856
mov dword [esp + 0x18], 0xd1f4104b
mov word [esp + 0x1c], 0
xor eax, eax
movzx esi, byte [esp + eax + 8]
mov edi, edx
and edi, 0x32
mov ecx, eax
xor ecx, 0x70d7ac79
add ecx, edi
mov edi, ecx
and edi, esi
add ecx, esi
add edi, edi
sub ecx, edi
add cl, 0xa3
mov byte [esp + eax + 8], cl
inc eax
add edx, 2
cmp eax, 0x16
jne 0x40f140
movzx edx, byte [esp + 8]
mov ecx, dword [esp]
test dl, dl
je 0x40f1b4
lea eax, [esp + 8]
mov esi, eax
mov ecx, dword [esp]
mov edi, ecx
jmp 0x40f197
movzx edx, byte [esi]
test dl, dl
je 0x40f1b4
mov dh, byte [edi]
test dh, dh
je 0x40f27e
inc edi
inc esi
lea ebp, [ecx + 1]
cmp dh, dl
je 0x40f1ae
mov ecx, ebp
mov edi, ebp
je 0x40f190
mov esi, eax
jmp 0x40f190
test ecx, ecx
je 0x40f27e
mov word [esp + 8], 0x3bde
mov byte [esp + 0xa], 0xfe
mov word [esp + 0xb], 0
mov byte [esp + 0xd], 0
mov edx, 0xaf289a2a
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + edx + 0x50d765de]
xor eax, edx
mov esi, eax
xor esi, 0xd3
and eax, 0x2c
add eax, eax
sub eax, esi
inc al
mov byte [esp + edx + 0x50d765de], al
inc edx
cmp edx, 0xaf289a30
jne 0x40f1e0
add ecx, 0x13
movzx edx, byte [esp + 8]
test dl, dl
je 0x40f252
lea edi, [esp + 8]
mov eax, ecx
mov esi, ecx
jmp 0x40f237
movzx edx, byte [edi]
test dl, dl
je 0x40f256
mov dh, byte [eax]
test dh, dh
je 0x40f27e
inc eax
inc edi
lea ebp, [esi + 1]
cmp dh, dl
je 0x40f24a
mov esi, ebp
mov eax, ebp
je 0x40f230
lea edi, [esp + 8]
jmp 0x40f230
mov esi, ecx
jmp 0x40f25a
test esi, esi
je 0x40f27e
mov byte [0x44c88c], 1
push esi
push ecx
push 0x100
push 0x44c88e
call fcn.0040eb80
add esp, 0x10
mov eax, dword [esp + 4]
mov dword [esp], eax
jmp 0x40f280
xor ebx, ebx
push dword [esp]
call fcn.0043a200
add esp, 4
mov eax, ebx
add esp, 0x8c
pop esi
pop edi
pop ebx
pop ebp
ret