Function at 0x40d4d0
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 + 0xc], ecx
mov eax, dword [ecx + 0x60]
mov dword [esp], eax
mov dword [esp + 0x64], 0xad9096f9
mov dword [esp + 0x68], 0xcaae959f
mov dword [esp + 0x6c], 0x868eb490
mov dword [esp + 0x70], 0xb999dbf2
mov dword [esp + 0x74], 0x898b94b8
mov dword [esp + 0x78], 0x81848c87
mov dword [esp + 0x7c], 0xb8f987fd
mov dword [esp + 0x80], 0xb8b5b1aa
mov dword [esp + 0x84], 0x161c1088
mov dword [esp + 0x88], 0x31a
mov byte [esp + 0x8c], 0
mov esi, 0x405aa8dd
mov edi, 0x80b551ba
nop
movzx edx, byte [esp + esi - 0x405aa879]
mov ebx, edi
and ebx, 0x80b400d8
mov eax, esi
xor eax, 0xd6fb526c
add eax, ebx
mov ebx, eax
and ebx, edx
mov ecx, ebx
or ecx, 0xfd
inc ecx
mov ebp, ebx
and ebp, 0xfffffffd
imul ebp, ecx
mov ecx, ebx
and ecx, 2
or ebx, 2
imul ebx, ecx
sub ebp, ebx
add eax, edx
add eax, ebp
add al, 0x93
mov byte [esp + esi - 0x405aa879], al
inc esi
add edi, 2
cmp esi, 0x405aa906
jne 0x40d550
mov dword [esp + 4], 0x79040862
mov byte [esp + 8], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0xbf
xor cl, byte [esp + eax + 4]
add cl, 0x45
mov byte [esp + eax + 4], cl
inc eax
cmp eax, 5
jne 0x40d5c0
mov dword [esp + 0x10], 0xa6a06c6d
mov dword [esp + 0x14], 0xa2a2909c
mov dword [esp + 0x18], 0xafdaa09d
mov dword [esp + 0x1c], 0xaaa7aea3
mov dword [esp + 0x20], 0xa297e3e2
mov dword [esp + 0x24], 0x98b57f79
mov dword [esp + 0x28], 0x959fed96
mov dword [esp + 0x2c], 0x96ba50e8
mov dword [esp + 0x30], 0xf08df1f3
mov dword [esp + 0x34], 0x888ff18d
mov dword [esp + 0x38], 0x8d4ab386
mov dword [esp + 0x3c], 0x4283ff83
mov dword [esp + 0x40], 0xf286f0f4
mov dword [esp + 0x44], 0xf6f835cf
mov dword [esp + 0x48], 0x39c7fcf5
mov dword [esp + 0x4c], 0xfaf2f4fa
mov dword [esp + 0x50], 0xe522da22
mov dword [esp + 0x54], 0xe9e3e9ed
mov dword [esp + 0x58], 0xd6efe4e9
mov word [esp + 0x5c], 0xd2e
mov word [esp + 0x62], 0
mov dword [esp + 0x5e], 0
mov esi, 0xb783d810
mov edi, 0x487c27ef
mov ebp, dword [esp + 0xa4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + esi + 0x487c2800]
mov edx, edi
and edx, 0x483006b7
mov eax, esi
and eax, 0x80008048
or eax, edx
xor eax, ecx
mov ecx, eax
and ecx, 0x51
xor ecx, 0x40
and eax, 0xae
xor eax, 0xa6
sub eax, ecx
inc al
mov byte [esp + esi + 0x487c2800], al
inc esi
dec edi
cmp esi, 0xb783d864
jne 0x40d6a0
add ebp, dword [esp]
movzx eax, byte [esp + 0x10]
mov edx, ebp
test al, al
je 0x40d70b
lea esi, [esp + 0x11]
mov edx, ebp
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [esi]
inc esi
test al, al
jne 0x40d700
mov byte [edx], 0
mov ecx, dword [esp + 0xa8]
movzx eax, byte [ecx]
test al, al
je 0x40d73d
inc ecx
mov esi, dword [esp + 0xac]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40d730
jmp 0x40d744
mov esi, dword [esp + 0xac]
mov byte [edx], 0
movzx eax, byte [esp + 4]
test al, al
je 0x40d76b
lea ecx, [esp + 5]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40d760
mov byte [edx], 0
movzx eax, byte [esp + 0x64]
test al, al
mov dword [esp], ebp
je 0x40d78b
lea ecx, [esp + 0x65]
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40d780
mov byte [edx], 0
mov ebx, dword [esp + 0xb0]
mov ecx, ebx
shr ecx, 2
mov eax, esi
mov edi, edx
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov ebp, esi
mov esi, ebx
and esi, 0xfffffffc
add ebp, esi
add esi, edx
mov ecx, ebx
shr ecx, 1
and ecx, 1
mov eax, ebp
mov edi, esi
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
test bl, 1
je 0x40d7d4
mov eax, dword [esp + 0xb0]
and eax, 2
movzx ecx, byte [ebp + eax]
mov byte [esi + eax], cl
mov dword [esp + 0x10], 0x1a193d3f
mov dword [esp + 0x14], 0xe0edcd6
mov dword [esp + 0x18], 0xd609d8d8
mov dword [esp + 0x1c], 0x202f23d0
mov dword [esp + 0x20], 0x3734202b
mov dword [esp + 0x24], 0xc3c5f823
mov dword [esp + 0x28], 0xb2c5c7
xor ecx, ecx
nop
nop
movzx eax, byte [esp + ecx + 0x10]
mov esi, ecx
xor esi, 0x16d6938c
mov edi, ecx
or edi, 0xe9296c73
and esi, edi
add esi, edi
mov edi, esi
not edi
or edi, 0x8fcc5f7a
add edi, esi
inc edi
and esi, 0x85
xor esi, 0x10128085
mov ebx, esi
xor ebx, edi
not edi
and edi, esi
add ebx, esi
sub ebx, edi
xor ebx, eax
mov eax, ebx
xor eax, 0x3a
xor ebx, 0x80
and ebx, 0xc0
and eax, 0x3f
sub ebx, eax
mov byte [esp + ecx + 0x10], bl
inc ecx
cmp ecx, 0x1c
jne 0x40d810
add edx, dword [esp + 0xb0]
movzx eax, byte [esp + 0x10]
test al, al
je 0x40d89d
lea ecx, [esp + 0x11]
mov esi, dword [esp]
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40d890
jmp 0x40d8a0
mov esi, dword [esp]
mov byte [edx], 0
sub edx, esi
mov eax, dword [esp + 0xc]
add dword [eax + 0x60], edx
add esp, 0x90
pop esi
pop edi
pop ebx
pop ebp
ret 0x10