Function at 0x40d960
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 0x40def5
mov esi, ecx
movzx eax, byte [ecx]
lea ecx, [esp + 0xa4]
push 0xa
push 4
push ecx
push eax
call fcn.0040df10
add esp, 0x10
mov ebx, eax
lea eax, [esi + 0x10]
push eax
call fcn.0040a500
add esp, 4
mov ebp, dword [esi + 0x10]
mov eax, dword [esi + 0x58]
mov eax, dword [eax + 0x48]
mov dword [esp + 0x18], eax
mov eax, ebp
and eax, 0x400
mov ecx, ebp
xor ecx, 0x400
lea eax, [ecx + eax*2]
push eax
call fcn.0040c630
add esp, 4
mov edi, eax
mov dword [esp + 0x1c], 0x6d6d5e6c
mov byte [esp + 0x20], 0xc0
mov dword [esp + 0x21], 0
mov dword [esp + 0x24], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xb
ja 0x40da39
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 + 0x1c]
mov edx, eax
xor edx, 0x2f38ef31
and eax, 0x2f38ef31
lea eax, [edx + eax*2]
xor eax, ecx
mov dword [esp + 8], eax
mov eax, dword [esp + 8]
add al, 0xb
mov ecx, dword [esp]
mov byte [esp + ecx + 0x1c], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xc
jb 0x40da00
lea eax, [esp + 0x1c]
mov ecx, esi
push 0x4500e0
push eax
push edi
call fcn.0040d280
mov dword [esp], 0x61fafcf4
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 3
ja 0x40dac1
nop
nop
nop
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, 0x4cdfc399
and eax, 0xccdfc399
lea edx, [edx + eax*2]
mov eax, edx
and eax, ecx
xor edx, ecx
lea ecx, [edx + eax*2]
mov edx, ecx
not edx
and edx, eax
add edx, eax
not eax
and eax, ecx
sub eax, edx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
add al, 3
mov ecx, dword [esp + 8]
mov byte [esp + ecx], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 4
jb 0x40da70
mov eax, esp
mov ecx, esi
push ebx
push eax
push edi
call fcn.0040d280
mov eax, dword [str.yau6Na__6928154717]
mov dword [esp + 0x1c], 0x41aaacd0
mov dword [esp + 0x20], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 7
ja 0x40db3b
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x1c]
mov ebx, ecx
xor ebx, 0xf6045791
and ecx, 0xf6045791
lea ecx, [ebx + ecx*2]
xor ecx, edx
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
add cl, 0x2b
mov edx, dword [esp]
mov byte [esp + edx + 0x1c], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 8
jb 0x40db00
mov ecx, esi
push eax
lea eax, [esp + 0x20]
push eax
push edi
call fcn.0040d280
mov dword [esp + 0x1c], 0x35003809
mov dword [esp + 0x20], 0x350c31
mov dword [esp + 0x24], 0x2e0f3401
mov byte [esp + 0x28], 0x88
mov dword [esp + 0x29], 0
mov byte [esp + 0x2d], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x11
ja 0x40dbbe
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 + 0x1c]
add eax, 0xb01acd65
xor eax, ecx
mov dword [esp + 8], eax
mov eax, dword [esp + 8]
add al, 7
mov ecx, dword [esp]
mov byte [esp + ecx + 0x1c], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x12
jb 0x40db90
mov dword [esp + 8], 0x33ced2d1
mov byte [esp + 0xc], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 4
ja 0x40dc11
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 8]
add eax, 0xee97acf4
xor eax, ecx
mov dword [esp], eax
mov eax, dword [esp]
add al, 0x3c
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 8], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 5
jb 0x40dbe0
lea edx, [esp + 8]
mov ecx, esi
lea eax, [esp + 0x1c]
push eax
push edx
push edi
call fcn.0040d280
mov dword [esp + 0x1c], 0x9e929c9a
mov byte [esp + 0x20], 0x20
mov dword [esp + 0x21], 0
mov byte [esp + 0x25], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 9
ja 0x40dca2
nop
nop
nop
nop
mov edx, dword [esp]
mov eax, dword [esp]
movzx eax, byte [esp + eax + 0x1c]
mov ebx, edx
or ebx, 0x4655b376
mov ecx, edx
not ecx
or ecx, 0xb9aa4c89
and ecx, ebx
mov ebx, edx
xor ebx, 0x4655b376
or edx, 0x39aa4c89
and edx, ebx
not ecx
lea ecx, [ecx + edx*2]
xor ecx, eax
mov dword [esp + 8], ecx
mov eax, dword [esp + 8]
add al, 0x53
mov ecx, dword [esp]
mov byte [esp + ecx + 0x1c], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xa
jb 0x40dc50
mov ecx, esi
push ebp
push dword [esp + 0x1c]
lea eax, [esp + 0x24]
push eax
push edi
call fcn.0040d500
mov eax, dword [esi + 0x60]
mov dword [esp + 0x1c], 0xcf5dc98f
mov dword [esp + 0x20], 0xc356cd5e
mov dword [esp + 0x24], 0xc754c1a5
mov dword [esp + 0x28], 0xfba7c550
mov dword [esp + 0x2c], 0xff77f98c
mov dword [esp + 0x30], 0xf397fd6c
mov dword [esp + 0x34], 0xf7d6f1be
mov dword [esp + 0x38], 0xeb7ff569
mov dword [esp + 0x3c], 0xef7ae974
mov dword [esp + 0x40], 0xe372ed75
mov dword [esp + 0x44], 0xe770e181
mov dword [esp + 0x48], 0x1b49e570
mov dword [esp + 0x4c], 0x1f8d1982
mov dword [esp + 0x50], 0x138f1d8a
mov dword [esp + 0x54], 0x1772114d
mov dword [esp + 0x58], 0xb9e1575
mov dword [esp + 0x5c], 0xf410969
mov dword [esp + 0x60], 0x3640d2c
mov dword [esp + 0x64], 0x7930193
mov dword [esp + 0x68], 0x3b5e0596
mov dword [esp + 0x6c], 0x3fa83959
mov dword [esp + 0x70], 0x337f3db5
mov dword [esp + 0x74], 0x37533156
mov dword [esp + 0x78], 0x2b7f357c
mov dword [esp + 0x7c], 0x2f4b294c
mov dword [esp + 0x80], 0x23bb2d79
mov dword [esp + 0x84], 0x274221b0
mov dword [esp + 0x88], 0x5b3d25b7
mov dword [esp + 0x8c], 0x5f3b59c1
mov dword [esp + 0x90], 0x53c45dca
mov dword [esp + 0x94], 0x57075135
mov dword [esp + 0x98], 0x4b745569
mov word [esp + 0x9c], 0x4948
mov byte [esp + 0xa2], 0
mov dword [esp + 0x9e], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0x86
ja 0x40de45
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x1c]
mov ebx, ecx
not ebx
or ebx, 0x1b03d1d2
add ebx, ecx
xor ecx, 0x1b03d1d2
lea ecx, [ecx + ebx*2]
add ecx, 2
xor ecx, edx
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
add cl, 0xe6
mov edx, dword [esp]
mov byte [esp + edx + 0x1c], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0x87
jb 0x40de00
mov dword [esp + 8], 0xd777c93b
mov dword [esp + 0xc], 0xd37bd564
mov word [esp + 0x10], 0xd1d0
mov dword [esp + 0x12], 0
mov byte [esp + 0x16], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 0xe
ja 0x40debe
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movzx edx, byte [esp + edx + 8]
mov ebx, ecx
xor ebx, 0x79f910ae
and ecx, 0xf9f910ae
lea ecx, [ebx + ecx*2]
xor ecx, edx
mov dword [esp], ecx
mov ecx, dword [esp]
add cl, 0x9a
mov edx, dword [esp + 4]
mov byte [esp + edx + 8], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 0xf
jb 0x40de80
push 0x493e0
push eax
push edi
push 0
push 0
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0x20]
push eax
call fcn.004106f0
add esp, 0x1c
mov ebx, eax
push edi
call fcn.0040c640
add esp, 4
mov eax, dword [esi + 0x60]
add dword [esi + 4], eax
mov dword [esi + 0x60], 0
jmp 0x40def7
mov bl, 1
mov eax, ebx
add esp, 0xa8
pop esi
pop edi
pop ebx
pop ebp
ret