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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xa8
cmp dword [ecx + 0x20], 0
je 0x40dabc
mov esi, ecx
movzx eax, byte [ecx]
lea ecx, [esp + 0xa4]
push 0xa
push 4
push ecx
push eax
call fcn.0040dad0
add esp, 0x10
mov dword [esp], eax
lea eax, [esi + 0x10]
push eax
call fcn.0040a3f0
add esp, 4
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 0x58]
mov eax, dword [eax + 0x48]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ecx
lea eax, [ecx + 0x400]
push eax
call fcn.0040c590
add esp, 4
mov edi, eax
mov dword [esp + 0x20], 0x879b9698
mov byte [esp + 0x24], 0x24
mov dword [esp + 0x25], 0
mov byte [esp + 0x29], 0
mov eax, 0x5c58c088
nop
nop
movzx ecx, byte [esp + eax - 0x5c58c068]
xor ecx, eax
lea edx, [ecx + 0x57]
not ecx
and ecx, 1
xor edx, 1
lea ecx, [edx + ecx*2]
mov byte [esp + eax - 0x5c58c068], cl
inc eax
cmp eax, 0x5c58c092
jne 0x40d670
lea ebp, [esp + 0x20]
mov ecx, esi
push 0x44f8f4
push ebp
push edi
call fcn.0040d010
mov dword [esp + 0x20], 0x41aaacd4
mov dword [esp + 0x24], 0
mov eax, 0x11
mov ecx, 0xee
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + eax + 0xf]
mov edx, ecx
xor edx, eax
and edx, ebx
xor edx, eax
add dl, 0xab
mov byte [esp + eax + 0xf], dl
inc eax
dec ecx
cmp eax, 0x19
jne 0x40d6d0
mov dword [esp + 4], esi
mov ecx, esi
push dword [esp]
push ebp
mov dword [esp + 8], edi
push edi
call fcn.0040d010
mov esi, dword [str.MeHdy4__pl10vs9]
mov dword [esp + 0x20], 0x1eaecf0
mov dword [esp + 0x24], 0
mov ecx, 0xc1
mov edx, 0x3e
nop
movzx edi, byte [esp + ecx - 0xa1]
mov ebx, ecx
xor ebx, edx
and ebx, edi
xor ebx, edx
mov al, 0x3a
sub al, bl
mov byte [esp + ecx - 0xa1], al
inc ecx
dec edx
cmp ecx, 0xc9
jne 0x40d720
mov ecx, dword [esp + 4]
push esi
push ebp
push dword [esp + 8]
call fcn.0040d010
mov dword [esp + 0x20], 0xb040417
mov dword [esp + 0x24], 0x1c0f0037
mov dword [esp + 0x28], 0x1215301f
mov byte [esp + 0x2c], 0x8c
mov dword [esp + 0x2d], 0
mov word [esp + 0x31], 0
xor eax, eax
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [ebp]
mov esi, eax
and esi, 0xbd8bf534
mov edi, ecx
xor edi, 0x213a0565
sub edi, esi
inc edi
mov esi, edi
not esi
or esi, edx
not edx
or edx, edi
add edx, esi
mov esi, 0x59dde4ff
sub esi, edx
mov edi, esi
and edi, 1
and edx, 0x41
and esi, 0xbe
or esi, edx
xor esi, 0x40
lea edx, [esi + edi*2]
mov byte [ebp], dl
inc ebp
dec ecx
add eax, 0xfffffffe
cmp ecx, 0xffffffed
jne 0x40d790
mov dword [esp + 8], 0x31cadadf
mov word [esp + 0xc], 0
xor eax, eax
nop
nop
movzx edx, byte [esp + eax + 8]
lea ecx, [eax + eax]
mov esi, ecx
and esi, 0xa
mov edi, eax
xor edi, esi
and esi, eax
xor edi, 0x8946e75
lea esi, [edi + esi*2]
lea edi, [esi + esi]
not edi
add edi, esi
or edi, edx
mov ebx, esi
not ebx
lea esi, [esi + ebx*2]
inc esi
and esi, edx
xor esi, edi
lea edx, [esi + esi]
not edx
add edx, esi
add dl, 0xb7
mov byte [esp + eax + 8], dl
and ecx, 2
xor eax, 1
add eax, ecx
cmp eax, 6
jb 0x40d7f0
lea ebp, [esp + 0x20]
lea ebx, [esp + 8]
mov esi, dword [esp + 4]
mov ecx, esi
push ebp
push ebx
mov edi, dword [esp + 8]
push edi
call fcn.0040d010
mov dword [esp + 0x20], 0x1e121c1a
mov byte [esp + 0x24], 0x60
mov dword [esp + 0x25], 0
mov word [esp + 0x29], 0
mov eax, 0xc86c6ee9
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x37939137]
mov edx, eax
and edx, ecx
add edx, edx
sub ecx, edx
add ecx, eax
mov edx, ecx
and edx, 1
or ecx, 1
add ecx, edx
add cl, 0x72
mov byte [esp + eax + 0x37939137], cl
inc eax
cmp eax, 0xc86c6ef4
jne 0x40d880
mov ecx, esi
push dword [esp + 0x1c]
push dword [esp + 0x1c]
push ebp
push edi
call fcn.0040d250
mov eax, dword [esi + 0x60]
mov dword [esp + 0x20], 0x19ab1b51
mov dword [esp + 0x24], 0x65da67aa
mov dword [esp + 0x28], 0x61d063cf
mov dword [esp + 0x2c], 0x6d1d6fdc
mov dword [esp + 0x30], 0x69ed6b30
mov dword [esp + 0x34], 0x75dd77d8
mov dword [esp + 0x38], 0x71127332
mov dword [esp + 0x3c], 0x7dc57fc3
mov dword [esp + 0x40], 0x79c67bc8
mov dword [esp + 0x44], 0x45f647cf
mov dword [esp + 0x48], 0x41fc43eb
mov dword [esp + 0x4c], 0x4d3f4ffc
mov dword [esp + 0x50], 0x49fb4be6
mov dword [esp + 0x54], 0x55e557f6
mov dword [esp + 0x58], 0x51fe5327
mov dword [esp + 0x5c], 0x5de25fff
mov dword [esp + 0x60], 0x591f5bf3
mov dword [esp + 0x64], 0xa508a738
mov dword [esp + 0x68], 0xa119a315
mov dword [esp + 0x6c], 0xad02af12
mov dword [esp + 0x70], 0xa914ab03
mov dword [esp + 0x74], 0xb5f5b72f
mov dword [esp + 0x78], 0xb119b31a
mov dword [esp + 0x7c], 0xbdc5bfc8
mov dword [esp + 0x80], 0xb911bb10
mov dword [esp + 0x84], 0x853187c3
mov dword [esp + 0x88], 0x812e8334
mov dword [esp + 0x8c], 0x8d238f31
mov dword [esp + 0x90], 0x89218b3b
mov dword [esp + 0x94], 0x95289736
mov dword [esp + 0x98], 0x91ed933f
mov dword [esp + 0x9c], 0x9d889f83
mov dword [esp + 0xa0], 0x9b9c
mov ecx, 0xc493bc44
nop
nop
nop
nop
nop
nop
movzx edx, byte [ebp]
mov esi, ecx
or esi, edx
lea edi, [ecx + 0x3b6c4400]
and edi, edx
not esi
or esi, edi
mov edx, esi
and edx, 1
mov edi, edx
not edi
add esi, edi
add esi, 0xd6e2ad5a
mov edi, esi
and edi, edx
xor edx, esi
lea edx, [edx + edi*2]
mov byte [ebp], dl
inc ebp
dec ecx
cmp ecx, 0xc493bbc0
jne 0x40d9f0
mov dword [esp + 8], 0x77d7095b
mov dword [esp + 0xc], 0x73db75e4
mov word [esp + 0x10], 0x7170
mov dword [esp + 0x12], 0
mov ebp, 0x3e
mov edx, 1
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, edx
and esi, 0x28
mov ecx, ebp
and ecx, 0x57
or ecx, esi
xor cl, byte [esp + ebp - 0x36]
xor cl, 0x28
add cl, 0xca
mov byte [esp + ebp - 0x36], cl
inc ebp
dec edx
cmp ebp, 0x4c
jne 0x40da60
lea ecx, [esp + 0x20]
push 0x493e0
push eax
mov esi, dword [esp + 8]
push esi
push 0
push 0
push ecx
push ebx
call fcn.004103e0
add esp, 0x1c
mov ebx, eax
push esi
call fcn.0040c5a0
add esp, 4
mov ecx, dword [esp + 4]
mov eax, dword [ecx + 0x60]
add dword [ecx + 4], eax
mov dword [ecx + 0x60], 0
jmp 0x40dabe
mov bl, 1
mov eax, ebx
add esp, 0xa8
pop esi
pop edi
pop ebx
pop ebp
ret