Function at 0x40de70
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 0x40e39d
mov esi, ecx
movzx eax, byte [ecx]
lea ecx, [esp + 0xa4]
push 0xa
push 4
push ecx
push eax
call fcn.0040e3b0
add esp, 0x10
mov dword [esp + 0x98], eax
lea eax, [esi + 0x10]
push eax
call fcn.0040aa30
add esp, 4
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 0x58]
mov eax, dword [eax + 0x48]
mov dword [esp + 0x9c], eax
mov eax, ecx
and eax, 0x400
mov dword [esp + 0xa0], ecx
xor ecx, 0x400
lea eax, [ecx + eax*2]
push eax
call fcn.0040cbb0
add esp, 4
mov dword [esp], eax
mov dword [esp + 0x10], 0xb5a5b6a4
mov byte [esp + 0x14], 0x50
mov dword [esp + 0x15], 0
mov dword [esp + 0x18], 0
mov eax, 0x6dfe478e
mov ebp, 0x1b872
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax - 0x6dfe477e]
lea ecx, [edx + edx]
not ecx
add ecx, edx
mov edi, ecx
xor edi, 5
or ecx, 0xfa
and ecx, edi
mov edi, edx
xor edi, 0xfa
or edx, 5
and edx, edi
or edx, ecx
lea ebx, [eax - 0x6c000001]
mov edi, ebx
not edi
mov ecx, ebp
or ecx, 0xfe569905
add ecx, eax
or ebx, 4
and ebx, 0x9e
xor ebx, ecx
xor ebx, 0xfe
and ecx, edi
and ecx, 0xfa
or ecx, ebx
xor ecx, edx
add cl, 0x3f
mov byte [esp + eax - 0x6dfe477e], cl
inc eax
dec ebp
cmp eax, 0x6dfe479a
jne 0x40df10
lea eax, [esp + 0x10]
mov ecx, esi
push 0x44e748
push eax
push dword [esp + 8]
call fcn.0040d830
mov dword [esp + 0x10], 0xc9565c5c
mov word [esp + 0x14], 0
mov byte [esp + 0x16], 0
mov eax, 0x507f2933
nop
nop
nop
movzx ecx, byte [esp + eax - 0x507f2923]
mov edx, eax
and edx, ecx
add edx, edx
sub ecx, edx
add ecx, eax
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
mov byte [esp + eax - 0x507f2923], cl
inc eax
cmp eax, 0x507f293a
jne 0x40dfb0
mov ecx, esi
push dword [esp + 0x98]
lea eax, [esp + 0x14]
push eax
push dword [esp + 8]
call fcn.0040d830
mov eax, dword [str.7uZzAf__]
mov dword [esp + 0x10], 0xe11a1c10
mov byte [esp + 0x14], 0
mov ecx, 0x6e76ce29
mov edx, 0x118931d6
nop
movzx edi, byte [esp + ecx - 0x6e76ce19]
mov ebx, edx
and ebx, 0x118920c4
mov ebp, ecx
and ebp, 0x40608c3b
or ebp, ebx
xor ebp, edi
mov edi, ebp
and edi, 1
xor ebp, 0xc5
lea ebx, [edi*2]
add ebx, ebp
add bl, 0x32
mov byte [esp + ecx - 0x6e76ce19], bl
inc ecx
dec edx
cmp ecx, 0x6e76ce2e
jne 0x40e010
mov ecx, esi
push eax
lea eax, [esp + 0x14]
push eax
push dword [esp + 8]
call fcn.0040d830
mov dword [esp + 0x10], 0x35003809
mov dword [esp + 0x14], 0x350c31
mov dword [esp + 0x18], 0x2e0f3401
mov byte [esp + 0x1c], 0x88
mov dword [esp + 0x1d], 0
mov byte [esp + 0x21], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + eax + 0x10]
lea ecx, [eax + 0x25]
mov edx, 0xd6fa0c1a
sub edx, eax
or edx, ebx
mov edi, 0x1a
sub edi, eax
mov ebp, edi
and ebp, 0xd8
and ecx, 0x27
or ecx, ebp
xor ecx, 0x27
or ecx, edi
and ecx, ebx
lea ebx, [edx + edx]
not ebx
add ebx, edx
or ebx, ecx
mov ecx, ebx
not ecx
or ecx, 0xcd1dc379
lea edi, [ebx + ecx]
add ecx, ebx
add ecx, 0x32e23c87
mov edx, 1
sub edx, ebx
and ebx, 0x86
add edi, ebx
add edi, 0x32e23c87
and ecx, 1
not edx
xor edi, 1
and edx, 1
or edx, edi
add edx, ecx
mov byte [esp + eax + 0x10], dl
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
cmp eax, 0x12
jb 0x40e0a0
mov dword [esp + 4], 0x986f6f3
mov word [esp + 8], 0
mov byte [esp + 0xa], 0
xor eax, eax
nop
nop
nop
nop
mov ecx, eax
add cl, 0xc3
xor cl, byte [esp + eax + 4]
add cl, 0x31
mov byte [esp + eax + 4], cl
inc eax
cmp eax, 7
jne 0x40e140
lea ebx, [esp + 4]
mov ecx, esi
lea eax, [esp + 0x10]
push eax
push ebx
push dword [esp + 8]
call fcn.0040d830
mov dword [esp + 0x10], 0xe6eee8e6
mov byte [esp + 0x14], 4
mov dword [esp + 0x15], 0
mov byte [esp + 0x19], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x10]
lea edx, [eax + 0xc0]
and edx, ecx
or ecx, eax
or ecx, 0xc0
xor ecx, edx
add cl, 0x40
mov byte [esp + eax + 0x10], cl
inc eax
cmp eax, 0xa
jne 0x40e190
mov ecx, esi
push dword [esp + 0xa0]
push dword [esp + 0xa0]
lea eax, [esp + 0x18]
push eax
push dword [esp + 0xc]
call fcn.0040da70
mov eax, dword [esi + 0x60]
mov dword [esp + 0x10], 0x71cf7fb9
mov dword [esp + 0x14], 0x75c673ce
mov dword [esp + 0x18], 0x49c877d3
mov dword [esp + 0x1c], 0x4db54bfc
mov dword [esp + 0x20], 0x41c54f98
mov dword [esp + 0x24], 0x45e543f0
mov dword [esp + 0x28], 0x59a6478e
mov dword [esp + 0x2c], 0x5ded5be7
mov dword [esp + 0x30], 0x51ea5fe0
mov dword [esp + 0x34], 0x55e253eb
mov dword [esp + 0x38], 0x29e457f7
mov dword [esp + 0x3c], 0x2ddb2b9c
mov dword [esp + 0x40], 0x219f2f8a
mov dword [esp + 0x44], 0x259d2392
mov dword [esp + 0x48], 0x398227db
mov dword [esp + 0x4c], 0x3d8e3b9b
mov dword [esp + 0x50], 0x31f33f9f
mov dword [esp + 0x54], 0x359033d0
mov dword [esp + 0x58], 0x9813785
mov dword [esp + 0x5c], 0xdae0bb6
mov dword [esp + 0x60], 0x1bc0faf
mov dword [esp + 0x64], 0x5cd038b
mov dword [esp + 0x68], 0x19a107a6
mov dword [esp + 0x6c], 0x1ded1bd0
mov dword [esp + 0x70], 0x11b91fb8
mov dword [esp + 0x74], 0x15a913e7
mov dword [esp + 0x78], 0xe9b217a4
mov dword [esp + 0x7c], 0xed4feb59
mov dword [esp + 0x80], 0xe149ef57
mov dword [esp + 0x84], 0xe550e352
mov dword [esp + 0x88], 0xf915e743
mov dword [esp + 0x8c], 0xfde0fbe7
mov word [esp + 0x90], 0xfffc
mov byte [esp + 0x94], 0
mov word [esp + 0x92], 0
xor edi, edi
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebp, edx
xor ebp, 0x6b
mov ecx, edi
and ecx, 0x28
sub ecx, ebp
xor cl, byte [esp + edx + 0x10]
add cl, 0x17
mov byte [esp + edx + 0x10], cl
inc edx
add edi, 2
cmp edx, 0x85
jne 0x40e310
mov dword [esp + 4], 0x33d33107
mov dword [esp + 8], 0x3fd73dcc
mov dword [esp + 0xc], 0x3938
xor ecx, ecx
nop
nop
nop
mov edx, ecx
add dl, 0x74
xor dl, byte [esp + ecx + 4]
add dl, 0xbc
mov byte [esp + ecx + 4], dl
inc ecx
cmp ecx, 0xc
jne 0x40e350
push 0x493e0
push eax
mov edi, dword [esp + 8]
push edi
push 0
push 0
lea eax, [esp + 0x24]
push eax
push ebx
call fcn.00410900
add esp, 0x1c
mov ebx, eax
push edi
call fcn.0040cbc0
add esp, 4
mov eax, dword [esi + 0x60]
add dword [esi + 4], eax
mov dword [esi + 0x60], 0
jmp 0x40e39f
mov bl, 1
mov eax, ebx
add esp, 0xa8
pop esi
pop edi
pop ebx
pop ebp
ret