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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xb0
cmp dword [ecx + 0x20], 0
je 0x40de93
mov esi, ecx
movzx eax, byte [ecx]
lea ecx, [esp + 0xac]
push 0xa
push 4
push ecx
push eax
call fcn.0040deb0
add esp, 0x10
mov dword [esp + 0xa0], eax
lea eax, [esi + 0x10]
push eax
call fcn.0040a450
add esp, 4
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 0x58]
mov eax, dword [eax + 0x48]
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa8], ecx
lea eax, [ecx + 0x400]
push eax
call fcn.0040c510
add esp, 4
mov dword [esp], eax
mov dword [esp + 0x18], 0xab574250
mov byte [esp + 0x1c], 0xcc
mov dword [esp + 0x1d], 0
mov dword [esp + 0x20], 0
xor eax, eax
xor ecx, ecx
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx + 0x18]
mov ebx, ecx
xor ebx, 0xb2e8bd2e
mov ebp, eax
and ebp, 2
sub ebp, ebx
xor ebp, edx
mov edx, ebp
and edx, 0x65
xor ebp, 0xe5
lea edx, [edx*2]
add edx, ebp
inc dl
mov byte [esp + ecx + 0x18], dl
inc ecx
add eax, 2
cmp ecx, 0xc
jne 0x40d9c0
lea eax, [esp + 0x18]
mov dword [esp + 4], esi
mov ecx, esi
push 0x450988
push eax
push dword [esp + 8]
call fcn.0040d230
mov dword [esp + 0x18], 0x315a444c
mov eax, 0x15
mov ecx, 0x3bb8074a
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + eax + 3]
mov ebp, ecx
or ebp, ebx
lea edx, [ecx - 0x3bb80700]
mov edi, eax
and edi, 0x1b
mov esi, ecx
and esi, edx
and edx, 4
or edx, edi
xor edx, ecx
xor edx, 0x1b
or edx, esi
and edx, ebx
xor edx, ebp
lea esi, [edx + edx]
not esi
add edx, esi
add edx, 0x696c7342
mov esi, edx
and esi, 0x35
xor edx, 0x35
lea edx, [edx + esi*2]
mov byte [esp + eax + 3], dl
inc eax
dec ecx
cmp eax, 0x19
jne 0x40da30
mov ecx, dword [esp + 4]
push dword [esp + 0xa0]
lea eax, [esp + 0x1c]
push eax
push dword [esp + 8]
call fcn.0040d230
mov eax, dword [str.MeHdy4__pl10vs1]
mov dword [esp + 0x18], 0x21babcb0
mov word [esp + 0x1c], 0
mov byte [esp + 0x1e], 0
mov ecx, 0xc64e3839
mov edx, 0x39b1c7c6
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + ecx + 0x39b1c7df]
mov edi, ecx
and edi, esi
add edi, edi
lea ebp, [ecx + esi]
lea ebx, [ecx + esi]
add ebx, 2
sub esi, edi
add esi, ecx
or esi, edx
lea esi, [esi*2 + 2]
add esi, ebp
mov edi, esi
and edi, 0x62
xor esi, 0xe2
lea esi, [esi + edi*2]
and ebx, 1
or esi, 1
xor esi, ebx
lea ebx, [esi + ebx*2]
mov byte [esp + ecx + 0x39b1c7df], bl
inc ecx
dec edx
cmp ecx, 0xc64e3840
jne 0x40dac0
mov ecx, dword [esp + 4]
push eax
lea eax, [esp + 0x1c]
push eax
push dword [esp + 8]
call fcn.0040d230
mov dword [esp + 0x18], 0x7b6c7c6f
mov dword [esp + 0x1c], 0x5447707f
mov dword [esp + 0x20], 0x424d4057
mov byte [esp + 0x24], 0xa4
mov word [esp + 0x25], 0
mov byte [esp + 0x27], 0
mov eax, 0x5d4b43da
mov ecx, 0x22b4bc25
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + eax - 0x5d4b43c2]
mov edi, ecx
and edi, 0x20b4300d
mov edx, eax
and edx, 0x400803b2
or edx, edi
xor edx, esi
mov esi, edx
and esi, 0x208420bd
xor esi, 0x2d87200d
and edx, 0x42
lea ebx, [esi + esi]
or edx, esi
xor edx, 2
sub ebx, edx
mov byte [esp + eax - 0x5d4b43c2], bl
inc eax
dec ecx
cmp eax, 0x5d4b43ea
jne 0x40db60
mov dword [esp + 8], 0xd7aaa6a9
mov eax, 0x7d34b2ce
mov ecx, 1
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax - 0x7d34b2c6]
lea esi, [eax - 0x60000000]
and esi, 0x1c003089
mov edi, ecx
not edi
and edi, 9
or edi, esi
mov ebp, edx
xor ebp, 0x56
mov ebx, eax
and ebx, 0x61348256
or ebx, 0x1c800408
xor ebx, edi
mov esi, ebx
xor esi, 0x7e
xor edx, 0x89
and edx, esi
xor ebx, 0x81
and ebx, ebp
or ebx, edx
add bl, 0xfa
mov byte [esp + eax - 0x7d34b2c6], bl
inc eax
dec ecx
cmp eax, 0x7d34b2d2
jne 0x40dbc0
lea edx, [esp + 8]
mov esi, dword [esp + 4]
mov ecx, esi
lea eax, [esp + 0x18]
push eax
push edx
push dword [esp + 8]
call fcn.0040d230
mov dword [esp + 0x18], 0xc2c6c4ce
mov byte [esp + 0x1c], 0x28
mov dword [esp + 0x1d], 0
mov word [esp + 0x21], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0x77
xor cl, byte [esp + eax + 0x18]
add cl, 0xad
mov byte [esp + eax + 0x18], cl
inc eax
cmp eax, 0xb
jne 0x40dc60
mov ecx, esi
push dword [esp + 0xa8]
push dword [esp + 0xa8]
lea eax, [esp + 0x20]
push eax
push dword [esp + 0xc]
call fcn.0040d4e0
mov eax, dword [esi + 0x60]
mov dword [esp + 0x18], 0xe117e739
mov dword [esp + 0x1c], 0xfd6ee316
mov dword [esp + 0x20], 0xf908ff03
mov dword [esp + 0x24], 0xf5cdfb74
mov dword [esp + 0x28], 0xf17df718
mov dword [esp + 0x2c], 0x8d0df300
mov dword [esp + 0x30], 0x89ae8f46
mov dword [esp + 0x34], 0x85058b7f
mov dword [esp + 0x38], 0x810a8770
mov dword [esp + 0x3c], 0x9d72837b
mov dword [esp + 0x40], 0x996c9f7f
mov dword [esp + 0x44], 0x95ab9b14
mov dword [esp + 0x48], 0x9167976a
mov dword [esp + 0x4c], 0xad659362
mov dword [esp + 0x50], 0xa952af9b
mov dword [esp + 0x54], 0xa526ab4b
mov dword [esp + 0x58], 0xa163a747
mov dword [esp + 0x5c], 0xbd40a380
mov dword [esp + 0x60], 0xb931bf4d
mov dword [esp + 0x64], 0xb546bb4e
mov dword [esp + 0x68], 0xb144b757
mov dword [esp + 0x6c], 0x4d75b33b
mov dword [esp + 0x70], 0x49b14fae
mov dword [esp + 0x74], 0x45854b80
mov dword [esp + 0x78], 0x41b947b8
mov dword [esp + 0x7c], 0x5db9438f
mov dword [esp + 0x80], 0x59a25fac
mov dword [esp + 0x84], 0x55a75ba9
mov dword [esp + 0x88], 0x51a957af
mov dword [esp + 0x8c], 0x6da053a2
mov dword [esp + 0x90], 0x695d6f93
mov dword [esp + 0x94], 0x65706b7f
mov word [esp + 0x98], 0x6764
mov word [esp + 0x9e], 0
mov dword [esp + 0x9a], 0
xor ecx, ecx
xor ebp, ebp
nop
nop
nop
nop
movzx esi, byte [esp + ebp + 0x18]
mov edi, ecx
and edi, 0x152
mov edx, ebp
xor edx, 0x673aea9
add edx, edi
mov edi, edx
and edi, esi
add edx, esi
add edi, edi
sub edx, edi
add dl, 0xb3
mov byte [esp + ebp + 0x18], dl
inc ebp
add ecx, 2
cmp ebp, 0x88
jne 0x40ddd0
mov dword [esp + 8], 0x8f2f897b
mov dword [esp + 0xc], 0x833b8d3c
mov word [esp + 0x10], 0x8180
mov dword [esp + 0x12], 0
xor ecx, ecx
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, edx
and bl, 2
mov bh, cl
sub bh, bl
mov bl, dl
or bl, 0x9d
add bl, bh
xor bl, byte [esp + edx + 8]
mov bh, 0x15
sub bh, bl
mov byte [esp + edx + 8], bh
inc edx
dec cl
cmp edx, 0xe
jne 0x40de30
push 0x493e0
push eax
mov esi, dword [esp + 8]
push esi
push 0
push 0
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0x20]
push eax
call fcn.004101d0
add esp, 0x1c
mov ebx, eax
push esi
call fcn.0040c520
add esp, 4
mov ecx, dword [esp + 4]
mov eax, dword [ecx + 0x60]
add dword [ecx + 4], eax
mov dword [ecx + 0x60], 0
jmp 0x40de95
mov bl, 1
mov eax, ebx
add esp, 0xb0
pop esi
pop edi
pop ebx
pop ebp
ret