Function at 0x40ab80
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, 0x108
cmp dword [ecx + 0x20], 0
je 0x40b07e
mov esi, ecx
lea eax, [ecx + 0x10]
push eax
call fcn.004066c0
add esp, 4
mov ebx, dword [esi + 0x10]
mov eax, dword [esi + 0x58]
mov eax, dword [eax + 0x48]
mov dword [esp + 8], eax
movzx eax, byte [esi]
imul ecx, eax, 0xcd
shr ecx, 0xa
and ecx, 0xfffffffe
lea ecx, [ecx + ecx*4]
sub al, cl
movzx eax, al
movzx eax, byte [eax + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov byte [esp + 6], al
mov byte [esp + 7], 0
lea eax, [ebx + 0x400]
push eax
call fcn.004095c0
add esp, 4
mov dword [esp], eax
mov dword [esp + 0x6c], 0xd5e516e4
mov byte [esp + 0x70], 0xb0
mov dword [esp + 0x71], 0
mov dword [esp + 0x74], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 0x6c]
lea ecx, [eax - 0x70ed67e3]
xor ecx, edx
mov edx, ecx
and edx, 0x402006c
mov edi, ecx
and edi, 2
mov ebp, edi
xor ebp, 2
imul ebp, edx
or edx, 2
imul edx, edi
add edx, ebp
xor ecx, 0x34a3076e
mov edi, edx
and edi, ecx
xor ecx, edx
lea ecx, [ecx + edi*2]
inc cl
mov byte [esp + eax + 0x6c], cl
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
cmp eax, 0xc
jb 0x40ac10
lea ebp, [esp + 0x6c]
mov ecx, esi
push 0x44ac8c
push ebp
push dword [esp + 8]
call fcn.0040a440
mov dword [esp + 0x6c], 0x77daa098
mov word [esp + 0x70], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
and ecx, 6
mov edx, eax
xor edx, 0xbe
lea ecx, [edx + ecx*2]
xor cl, byte [esp + eax + 0x6c]
add cl, 0x4a
mov byte [esp + eax + 0x6c], cl
add eax, 0xc5bc22a9
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
add eax, 0x3a43dd57
cmp eax, 6
jb 0x40ac90
lea eax, [esp + 6]
mov ecx, esi
push eax
push ebp
push dword [esp + 8]
call fcn.0040a440
mov eax, dword [str.c2CoW0__112924_2]
mov dword [esp + 0x6c], 0x51aaa4a0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, ecx
add dl, 0x8d
xor dl, byte [esp + ecx + 0x6c]
add dl, 0x3f
mov byte [esp + ecx + 0x6c], dl
inc ecx
cmp ecx, 4
jne 0x40acf0
mov ecx, esi
push eax
push ebp
push dword [esp + 8]
call fcn.0040a440
mov dword [esp + 0x6c], 0xbba4a4b7
mov dword [esp + 0x70], 0xacbfa0b7
mov dword [esp + 0x74], 0xb2b5b0af
mov byte [esp + 0x78], 0x5c
mov dword [esp + 0x79], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0x8e
xor cl, byte [esp + eax + 0x6c]
add cl, 0x3a
mov byte [esp + eax + 0x6c], cl
inc eax
cmp eax, 0x11
jne 0x40ad40
mov dword [esp + 0xc], 0xf77a4659
mov dword [esp + 0x10], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 0xc]
mov ecx, 0xa034d829
sub ecx, eax
or ecx, edx
mov edi, 0x29
sub edi, eax
and edi, edx
not ecx
or ecx, edi
mov edx, ecx
and edx, 0x51
xor ecx, 0xd1
lea ecx, [ecx + edx*2]
inc cl
mov byte [esp + eax + 0xc], cl
mov ecx, eax
not ecx
or ecx, 1
add ecx, eax
or eax, 1
add eax, ecx
inc eax
cmp eax, 8
jb 0x40ad70
lea eax, [esp + 0xc]
mov ecx, esi
push ebp
push eax
push dword [esp + 8]
call fcn.0040a440
mov dword [esp + 0x6c], 0xfe86f8fe
mov byte [esp + 0x70], 0x1c
mov word [esp + 0x71], 0
mov byte [esp + 0x73], 0
xor eax, eax
nop
movzx edx, byte [esp + eax + 0x6c]
lea edi, [eax + 0x44]
mov ecx, 0xbb
sub ecx, eax
xor ecx, edi
and ecx, edx
xor ecx, edi
add cl, 0xac
mov byte [esp + eax + 0x6c], cl
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
cmp eax, 8
jb 0x40ade0
mov ecx, esi
push ebx
push dword [esp + 0xc]
push ebp
push dword [esp + 0xc]
call fcn.0040a6a0
mov dword [esp + 0xc], 0x37c539e7
mov dword [esp + 0x10], 0x33be35c6
mov dword [esp + 0x14], 0xcf3c31cd
mov dword [esp + 0x18], 0xcbffcd40
mov dword [esp + 0x1c], 0xc74fc924
mov dword [esp + 0x20], 0xc33fc534
mov dword [esp + 0x24], 0xdffec106
mov dword [esp + 0x28], 0xdb57dd29
mov dword [esp + 0x2c], 0xd75ad92c
mov dword [esp + 0x30], 0xd322d52d
mov dword [esp + 0x34], 0xef60d131
mov dword [esp + 0x38], 0xebd9ed60
mov dword [esp + 0x3c], 0xe715e912
mov dword [esp + 0x40], 0xe317e56a
mov dword [esp + 0x44], 0xff02e1d5
mov dword [esp + 0x48], 0xfb76fd1d
mov dword [esp + 0x4c], 0xf731f919
mov dword [esp + 0x50], 0xf30cf5d4
mov dword [esp + 0x54], 0x8f03f103
mov dword [esp + 0x58], 0x8b768d7e
mov dword [esp + 0x5c], 0x87088969
mov dword [esp + 0x60], 0x8347850d
mov word [esp + 0x64], 0x8180
mov byte [esp + 0x68], 0
mov word [esp + 0x66], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 0xc]
lea ecx, [edx + edx]
not ecx
add ecx, edx
lea ebx, [eax + 0xf6]
or ebx, edx
not edx
and edx, ecx
mov ecx, 9
sub ecx, eax
or ecx, edx
and ebx, ecx
add bl, 0x32
mov byte [esp + eax + 0xc], bl
mov ecx, 1
sub ecx, eax
add eax, 0x7e
and ecx, 0x7d
and eax, 0x82
sub eax, ecx
cmp eax, 0x5d
jb 0x40aef0
movzx eax, word [esp + 0xc]
test ax, ax
je 0x40af62
lea ebp, [esp + 0x6c]
lea ecx, [esp + 0xe]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ebp], ax
add ebp, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40af50
mov word [ebp], 0
movzx ecx, byte [esi + 0x60]
test cl, cl
je 0x40af92
lea eax, [esi + 0x61]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movsx ecx, cl
mov word [ebp], cx
add ebp, 2
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x40af80
mov dword [ebp], 0xa000d
mov word [ebp + 4], 0
mov eax, dword [esi + 0x80]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0x315d3f0d
mov dword [esp + 0x10], 0x35493340
mov dword [esp + 0x14], 0x3734
mov ecx, 0x65dfa74b
mov edi, 0x86eafab4
nop
nop
nop
nop
nop
movzx ebx, byte [esp + edi + 0x79150558]
lea edx, [edi + 0x13355e01]
mov ebp, edx
and ebp, ebx
add ebp, ebp
sub ebp, ebx
add ebp, ecx
dec ebp
and ebp, edx
mov edx, ebp
and edx, 0x9a2058fd
mov eax, ebp
and eax, 2
or ebp, 2
imul ebp, eax
xor eax, 2
imul eax, edx
add ebp, eax
lea eax, [ecx + ebp]
xor eax, ebx
mov edx, edi
sub edx, ebp
and edx, ebx
add edx, edx
sub edx, eax
mov ebx, edx
xor ebx, 0x89
or edx, 0xfd5e4476
and ebx, edx
add ebx, edx
inc bl
mov byte [esp + edi + 0x79150558], bl
dec ecx
inc edi
cmp ecx, 0x65dfa73f
jne 0x40afd0
lea eax, [esp + 0x6c]
push 0x493e0
push dword [esp + 0xc]
mov edi, dword [esp + 8]
push edi
push 0
push 0
push eax
lea eax, [esp + 0x24]
push eax
call fcn.0040d4d0
add esp, 0x1c
mov ebx, eax
push edi
call fcn.004095d0
add esp, 4
mov eax, dword [esi + 0x80]
add dword [esi + 4], eax
mov dword [esi + 0x80], 0
jmp 0x40b080
mov bl, 1
mov eax, ebx
add esp, 0x108
pop esi
pop edi
pop ebx
pop ebp
ret