Function at 0x40dce0
Capabilities:
Contain obfuscated stackstrings
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 0x40e2dd
mov esi, ecx
movzx eax, byte [ecx]
lea ecx, [esp + 0xa4]
push 0xa
push 4
push ecx
push eax
call fcn.0040e2f0
add esp, 0x10
mov ebx, eax
lea eax, [esi + 0x10]
push eax
call fcn.0040a7c0
add esp, 4
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 0x58]
mov eax, dword [eax + 0x48]
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa0], ecx
lea eax, [ecx + 0x400]
push eax
call fcn.0040c990
add esp, 4
mov edi, eax
mov dword [esp + 0x14], 0x272b3628
mov byte [esp + 0x18], 0x84
mov dword [esp + 0x19], 0
mov dword [esp + 0x1c], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xb
ja 0x40ddbc
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x14]
mov edx, eax
xor edx, 0x377acca0
and eax, 0x377acca0
lea eax, [edx + eax*2]
lea edx, [eax + ecx]
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 8], edx
mov eax, dword [esp + 8]
mov ecx, eax
not ecx
and ecx, 0x20
and eax, 0xdf
sub eax, ecx
mov ecx, dword [esp]
mov byte [esp + ecx + 0x14], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xc
jb 0x40dd70
lea eax, [esp + 0x14]
mov ecx, esi
push 0x44f390
push eax
push edi
call fcn.0040d600
mov dword [esp], 0xd16a647c
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 3
ja 0x40de45
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx]
mov edx, eax
xor edx, 0x2a19bdad
add eax, eax
and eax, 0x54337b5a
mov ebp, eax
and ebp, edx
xor eax, edx
lea eax, [eax + ebp*2]
lea edx, [eax + ecx]
and eax, ecx
mov ecx, edx
xor ecx, eax
add ecx, eax
not eax
and eax, edx
add eax, eax
sub eax, ecx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
add al, 0x9f
mov ecx, dword [esp + 8]
mov byte [esp + ecx], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 4
jb 0x40ddf0
mov eax, esp
mov ecx, esi
push ebx
push eax
push edi
call fcn.0040d600
mov eax, dword [str.BVnUqo___zenvolord4]
mov dword [esp + 0x14], 0x219a9c90
mov word [esp + 0x18], 0
mov byte [esp + 0x1a], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 6
ja 0x40debb
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x14]
mov ebx, ecx
xor ebx, 0xc9c5aec9
and ecx, 0xc9c5aec9
lea ecx, [ebx + ecx*2]
xor ecx, edx
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
add cl, 0x13
mov edx, dword [esp]
mov byte [esp + edx + 0x14], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 7
jb 0x40de80
mov ecx, esi
push eax
lea eax, [esp + 0x18]
push eax
push edi
call fcn.0040d600
mov dword [esp + 0x14], 0xb5a8b0a1
mov dword [esp + 0x18], 0xd8cdd4b9
mov dword [esp + 0x1c], 0xcacbccd9
mov byte [esp + 0x20], 0x60
mov dword [esp + 0x21], 0
mov byte [esp + 0x25], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x11
ja 0x40df49
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x14]
mov edx, eax
xor edx, 0xcb5d43bb
and eax, 0xcb5d43bb
lea eax, [edx + eax*2]
xor eax, ecx
mov dword [esp + 8], eax
mov eax, dword [esp + 8]
add al, 0x59
mov ecx, dword [esp]
mov byte [esp + ecx + 0x14], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x12
jb 0x40df10
mov dword [esp + 8], 0xd7aaa6a9
mov word [esp + 0xc], 0
mov byte [esp + 0xe], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 6
ja 0x40dfb9
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 8]
mov edx, eax
xor edx, 0x1d4eba4e
and eax, 0x1d4eba4e
lea eax, [edx + eax*2]
xor eax, ecx
mov dword [esp], eax
mov eax, dword [esp]
mov ecx, eax
not ecx
and ecx, 0x86
and eax, 0x79
sub eax, ecx
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 8], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 7
jb 0x40df70
lea ebx, [esp + 8]
mov ecx, esi
lea eax, [esp + 0x14]
push eax
push ebx
push edi
call fcn.0040d600
mov dword [esp + 0x14], 0x2e322c2a
mov byte [esp + 0x18], 0x80
mov dword [esp + 0x19], 0
mov word [esp + 0x1d], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xa
ja 0x40e079
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x14]
mov edx, eax
or edx, 0xfc9935e
mov ebp, eax
not ebp
or ebp, 0xf0366ca1
and ebp, edx
not ebp
mov edx, eax
xor edx, 0xfc9935e
or eax, 0x70366ca1
and eax, edx
lea edx, [eax*2]
add edx, ebp
lea eax, [edx + ecx]
mov ebp, ecx
not ebp
or ebp, edx
add ecx, ebp
inc ecx
mov edx, eax
not edx
and edx, ecx
mov ebp, ecx
not ebp
and eax, ebp
sub eax, edx
mov edx, eax
not edx
and edx, ecx
and eax, ebp
sub eax, edx
mov dword [esp + 8], eax
mov eax, dword [esp + 8]
add al, 0xdb
mov ecx, dword [esp]
mov byte [esp + ecx + 0x14], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xb
jb 0x40e000
mov ecx, esi
push dword [esp + 0xa0]
push dword [esp + 0xa0]
lea eax, [esp + 0x1c]
push eax
push edi
call fcn.0040d8a0
mov eax, dword [esi + 0x60]
mov dword [esp + 0x14], 0x13851153
mov dword [esp + 0x18], 0x1f821d8a
mov dword [esp + 0x1c], 0x1b8c1975
mov dword [esp + 0x20], 0x7530598
mov dword [esp + 0x24], 0x39b017c
mov dword [esp + 0x28], 0xf630d9c
mov dword [esp + 0x2c], 0xb2a0952
mov dword [esp + 0x30], 0x37ab35a1
mov dword [esp + 0x34], 0x33ae31a4
mov dword [esp + 0x38], 0x3fae3d55
mov dword [esp + 0x3c], 0x3ba83959
mov dword [esp + 0x40], 0x277125b8
mov dword [esp + 0x44], 0x23b5214e
mov dword [esp + 0x48], 0x2fbb2dbe
mov dword [esp + 0x4c], 0x2b46297d
mov dword [esp + 0x50], 0x57ca5535
mov dword [esp + 0x54], 0x53095131
mov dword [esp + 0x58], 0x5f3c5d7c
mov dword [esp + 0x5c], 0x5bc759cf
mov dword [esp + 0x60], 0x472a45d2
mov dword [esp + 0x64], 0x43d04121
mov dword [esp + 0x68], 0x4f0b4dd5
mov dword [esp + 0x6c], 0x4b27492a
mov dword [esp + 0x70], 0x772b752c
mov dword [esp + 0x74], 0x731f711c
mov dword [esp + 0x78], 0x7f177d21
mov dword [esp + 0x7c], 0x7b1679e8
mov dword [esp + 0x80], 0x670565f3
mov dword [esp + 0x84], 0x630f6109
mov dword [esp + 0x88], 0x6ffc6dfe
mov dword [esp + 0x8c], 0x6b3b6905
mov dword [esp + 0x90], 0x979c95a1
mov word [esp + 0x94], 0x9190
mov word [esp + 0x9a], 0
mov dword [esp + 0x96], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0x87
ja 0x40e230
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x14]
mov ebp, ecx
xor ebp, 0x60568c04
and ecx, 0xe0568c04
lea ecx, [ecx*2]
add ecx, ebp
xor ecx, edx
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
mov edx, ecx
not edx
and edx, 0x14
and ecx, 0xeb
sub ecx, edx
mov edx, dword [esp]
mov byte [esp + edx + 0x14], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0x88
jb 0x40e1e0
mov dword [esp + 8], 0x61c567b5
mov dword [esp + 0xc], 0x5df963f0
mov dword [esp + 0x10], 0x5f5c
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 0xb
ja 0x40e2aa
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movzx edx, byte [esp + edx + 8]
lea ebp, [ecx + edx]
add ebp, 0x7f1e2819
add ecx, 0x7f1e2819
and ecx, edx
mov edx, ebp
not edx
and edx, ecx
add edx, ecx
not ecx
and ecx, ebp
sub ecx, edx
mov dword [esp], ecx
mov ecx, dword [esp]
add cl, 0x83
mov edx, dword [esp + 4]
mov byte [esp + edx + 8], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 0xc
jb 0x40e260
push 0x493e0
push eax
push edi
push 0
push 0
lea eax, [esp + 0x28]
push eax
push ebx
call fcn.004109e0
add esp, 0x1c
mov ebx, eax
push edi
call fcn.0040c9a0
add esp, 4
mov eax, dword [esi + 0x60]
add dword [esi + 4], eax
mov dword [esi + 0x60], 0
jmp 0x40e2df
mov bl, 1
mov eax, ebx
add esp, 0xa8
pop esi
pop edi
pop ebx
pop ebp
ret