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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xac
cmp dword [ecx + 0x20], 0
je 0x40e15a
mov esi, ecx
movzx eax, byte [ecx]
lea ecx, [esp + 0xa8]
push 0xa
push 4
push ecx
push eax
call fcn.0040e170
add esp, 0x10
mov dword [esp + 0x18], eax
lea eax, [esi + 0x10]
push eax
call fcn.0040a770
add esp, 4
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 0x58]
mov eax, dword [eax + 0x48]
mov dword [esp + 0x1c], eax
mov dword [esp + 4], ecx
lea eax, [ecx + 0x400]
push eax
call fcn.0040c8d0
add esp, 4
mov dword [esp], eax
mov dword [esp + 0x20], 0x555d4254
mov byte [esp + 0x24], 0xc8
mov dword [esp + 0x25], 0
mov word [esp + 0x29], 0
mov ebx, 0x40b47483
mov ecx, 0x8168e906
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ebx - 0x40b47463]
mov ebp, ecx
and ebp, 0x8108a120
mov eax, ebx
xor eax, 0xe18e59d0
add eax, ebp
xor eax, edx
mov edx, eax
mov ebp, eax
xor ebp, 0x54b1f860
add ebp, eax
and eax, 0x30e860
and edx, 0xa34a079f
sub ebp, edx
mov edx, ebp
and edx, eax
xor ebp, eax
lea eax, [edx*2]
add eax, ebp
inc al
mov byte [esp + ebx - 0x40b47463], al
inc ebx
add ecx, 2
cmp ebx, 0x40b4748e
jne 0x40dce0
lea ebp, [esp + 0x20]
mov ecx, esi
push 0x44f2d8
push ebp
push dword [esp + 8]
call fcn.0040d690
mov dword [esp + 0x20], 0x9f7a7068
mov byte [esp + 0x24], 0
mov eax, 0x6b1b77da
nop
movzx ecx, byte [esp + eax - 0x6b1b77ba]
mov edx, eax
and edx, ecx
mov ebx, edx
and ebx, 2
mov edi, edx
or edx, 2
imul edx, ebx
xor ebx, 2
and edi, 0xfffffffd
imul edi, ebx
sub ecx, edi
sub ecx, edx
lea edx, [eax + ecx]
add ecx, eax
dec ecx
lea edx, [edx*2 - 2]
mov edi, 2
sub edi, edx
not edi
and edi, 2
xor ecx, 1
add ecx, edi
add cl, 0xbe
mov byte [esp + eax - 0x6b1b77ba], cl
inc eax
cmp eax, 0x6b1b77df
jne 0x40dd60
mov ecx, esi
push dword [esp + 0x18]
push ebp
push dword [esp + 8]
call fcn.0040d690
mov eax, dword [str.hRjzG3__AEX]
mov dword [esp + 0x20], 0x8326282c
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + ecx + 0x20]
mov edx, edi
xor edx, 0xe5
xor edi, 0x19ee42e5
or edi, edx
not edi
mov edx, ecx
xor edx, 0xef60297a
mov ebx, edx
and ebx, edi
add edx, edi
add ebx, ebx
sub edx, ebx
add dl, 0x20
mov byte [esp + ecx + 0x20], dl
inc ecx
cmp ecx, 4
jne 0x40dde0
mov ecx, esi
push eax
push ebp
push dword [esp + 8]
call fcn.0040d690
mov dword [esp + 0x20], 0xedf0e8f9
mov dword [esp + 0x24], 0xf0edf4e1
mov dword [esp + 0x28], 0xe6e7ecf1
mov byte [esp + 0x2c], 8
mov dword [esp + 0x2d], 0
mov byte [esp + 0x31], 0
mov eax, 0x41
mov ecx, 0xe
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax - 0x21]
mov edi, ecx
and edi, 0xf
mov ebx, eax
and ebx, 0x70
or ebx, edi
mov edi, edx
and edi, 0xffffff8f
or edi, 0x30
and edx, 0x70
xor edx, ebx
xor edx, edi
xor dl, 0xbf
add dl, 0x3b
mov byte [esp + eax - 0x21], dl
inc eax
dec ecx
cmp eax, 0x53
jne 0x40de60
mov dword [esp + 8], 0xf9661613
mov eax, 0xb09f4b2b
nop
nop
movzx ecx, byte [esp + eax + 0x4f60b4dd]
xor ecx, eax
mov edx, ecx
and edx, 0x28
xor ecx, 0x28
lea ecx, [ecx + edx*2]
inc cl
mov byte [esp + eax + 0x4f60b4dd], cl
inc eax
cmp eax, 0xb09f4b2f
jne 0x40dea0
lea eax, [esp + 8]
mov ecx, esi
push ebp
push eax
push dword [esp + 8]
call fcn.0040d690
mov dword [esp + 0x20], 0x3e06383e
mov byte [esp + 0x24], 0x9c
mov dword [esp + 0x25], 0
mov eax, 0x1cbce79b
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [ebp]
mov ecx, eax
or ecx, edx
lea edi, [eax - 0x1cbce700]
and edi, edx
not ecx
or ecx, edi
add ecx, 0x8fb0860b
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
mov byte [ebp], cl
inc ebp
dec eax
cmp eax, 0x1cbce792
jne 0x40df00
lea eax, [esp + 0x20]
mov ecx, esi
push dword [esp + 4]
push dword [esp + 0x20]
push eax
push dword [esp + 0xc]
call fcn.0040d8c0
mov eax, dword [esi + 0x60]
mov dword [esp + 4], eax
mov dword [esp + 0x20], 0x813787c9
mov dword [esp + 0x24], 0x8d3e8336
mov dword [esp + 0x28], 0x89388f23
mov dword [esp + 0x2c], 0x95fd8b34
mov dword [esp + 0x30], 0x912d97c8
mov dword [esp + 0x34], 0x9d3d9320
mov dword [esp + 0x38], 0x99fe9fe6
mov dword [esp + 0x3c], 0xe5259b2f
mov dword [esp + 0x40], 0xe15ae750
mov dword [esp + 0x44], 0xed52e34b
mov dword [esp + 0x48], 0xe95cef4f
mov dword [esp + 0x4c], 0xf59beb54
mov dword [esp + 0x50], 0xf147f75a
mov dword [esp + 0x54], 0xfd45f342
mov dword [esp + 0x58], 0xf952ff8b
mov dword [esp + 0x5c], 0xc546fb5b
mov dword [esp + 0x60], 0xc183c767
mov dword [esp + 0x64], 0xcd60c3a0
mov dword [esp + 0x68], 0xc971cf7d
mov dword [esp + 0x6c], 0xd566cb7e
mov dword [esp + 0x70], 0xd164d777
mov dword [esp + 0x74], 0xdd95d36b
mov dword [esp + 0x78], 0xd971df7e
mov dword [esp + 0x7c], 0x25a5dba0
mov dword [esp + 0x80], 0x21892788
mov dword [esp + 0x84], 0x2d89235f
mov dword [esp + 0x88], 0x29822f9c
mov dword [esp + 0x8c], 0x35872b99
mov dword [esp + 0x90], 0x3199379f
mov dword [esp + 0x94], 0x3d803382
mov dword [esp + 0x98], 0x394d3f93
mov dword [esp + 0x9c], 0x5303b2f
mov word [esp + 0xa0], 0x704
mov byte [esp + 0xa4], 0
mov word [esp + 0xa2], 0
mov ecx, 0xcfce2b21
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx + 0x3031d4ff]
xor edx, ecx
mov edi, 1
sub edi, edx
mov ebx, edi
not ebx
and ebx, 1
or edx, 1
or edi, 0xfe
add edx, 0x5a
and edx, edi
lea edx, [edx + ebx*2]
mov byte [esp + ecx + 0x3031d4ff], dl
inc ecx
cmp ecx, 0xcfce2ba6
jne 0x40e090
mov dword [esp + 8], 0x93339147
mov dword [esp + 0xc], 0x9f379d0c
mov dword [esp + 0x10], 0x9998
mov byte [esp + 0x14], 0
mov eax, 0x64
mov ebp, 0x1b
movzx edi, byte [esp + eax - 0x5c]
mov ecx, eax
and ecx, edi
mov edx, ebp
and edx, 0x10
mov ebx, eax
and ebx, 0x4f
or ebx, edx
xor ebx, edi
xor ebx, 0x30
not ecx
and ecx, ebx
add cl, 0xc
mov byte [esp + eax - 0x5c], cl
inc eax
dec ebp
cmp eax, 0x71
jne 0x40e0f0
push 0x493e0
push dword [esp + 8]
mov edi, dword [esp + 8]
push edi
push 0
push 0
lea eax, [esp + 0x34]
push eax
lea eax, [esp + 0x20]
push eax
call fcn.004106d0
add esp, 0x1c
mov ebx, eax
push edi
call fcn.0040c8e0
add esp, 4
mov eax, dword [esi + 0x60]
add dword [esi + 4], eax
mov dword [esi + 0x60], 0
jmp 0x40e15c
mov bl, 1
mov eax, ebx
add esp, 0xac
pop esi
pop edi
pop ebx
pop ebp
ret