Function at 0x40aa00
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 0x40aa49
mov esi, ecx
movzx eax, byte [ecx]
mov byte [esp + 0xb], 0
test eax, eax
je 0x40aa50
cmp al, 0x64
jb 0x40aa5b
lea ecx, [eax + eax*4]
lea edx, [eax + ecx*8]
shr edx, 0xc
imul ecx, edx, 0x64
sub al, cl
movzx eax, al
movzx eax, word [eax + eax + 0x442318]
mov word [esp + 9], ax
mov ecx, 0xfffffffd
mov eax, edx
jmp 0x40aa64
mov bl, 1
jmp 0x40af4c
lea ebx, [esp + 0xa]
mov byte [esp + 0xa], 0x30
jmp 0x40aa8a
mov ecx, 0xffffffff
cmp al, 9
ja 0x40aa79
lea edx, [esp + 0xc]
movzx eax, byte [eax + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
lea ebx, [edx + ecx]
dec ebx
mov byte [esp + ecx + 0xb], al
jmp 0x40aa8a
movzx eax, word [eax + eax + 0x442318]
lea ebx, [esp + 9]
mov word [esp + 9], ax
lea eax, [esi + 0x10]
push eax
call fcn.00407980
add esp, 4
mov ebp, dword [esi + 0x10]
mov eax, dword [esi + 0x58]
mov eax, dword [eax + 0x48]
mov dword [esp + 0x1c], eax
lea eax, [ebp + 0x400]
push eax
call fcn.00409a50
add esp, 4
mov edi, eax
mov dword [esp + 0x20], 0x87837680
mov byte [esp + 0x24], 0xf4
mov dword [esp + 0x25], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 8
ja 0x40ab0e
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x20]
add eax, 0x62b45d74
xor eax, ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
add al, 0x74
mov ecx, dword [esp]
mov byte [esp + ecx + 0x20], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 9
jb 0x40aae0
lea eax, [esp + 0x20]
mov ecx, esi
push 0x449824
push eax
push edi
call fcn.0040a3c0
mov dword [esp + 0x20], 0x4e9f18b
mov word [esp + 0x24], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 5
ja 0x40ab6e
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x20]
add eax, 0xaa48c9ce
xor eax, ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
add al, 0x2b
mov ecx, dword [esp]
mov byte [esp + ecx + 0x20], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 6
jb 0x40ab40
mov ecx, esi
push ebx
lea ebx, [esp + 0x24]
push ebx
push edi
call fcn.0040a3c0
mov eax, dword [str.WpM2Co__SUSELL]
mov dword [esp + 0x20], 0x71140a0e
mov byte [esp + 0x24], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 4
ja 0x40abd0
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x20]
add ecx, 0x54a33178
xor ecx, edx
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0xc]
add cl, 0xf6
mov edx, dword [esp]
mov byte [esp + edx + 0x20], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 5
jb 0x40aba0
mov ecx, esi
push eax
push ebx
push edi
call fcn.0040a3c0
mov dword [esp + 0x20], 0xd8c3ddce
mov dword [esp + 0x24], 0xc5d6c1de
mov dword [esp + 0x28], 0xd3ccd1c6
mov byte [esp + 0x2c], 0x37
mov dword [esp + 0x2d], 0
mov dword [esp + 0x30], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x13
ja 0x40ac4e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x20]
add eax, 0x4a9a9e72
xor eax, ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
add al, 0xb7
mov ecx, dword [esp]
mov byte [esp + ecx + 0x20], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x14
jb 0x40ac20
mov dword [esp + 0xc], 0x44c7e9e8
mov dword [esp + 0x10], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 7
ja 0x40aca1
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0xc]
add eax, 0xe00acdf5
xor eax, ecx
mov dword [esp], eax
mov eax, dword [esp]
add al, 0x44
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0xc], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 8
jb 0x40ac70
lea eax, [esp + 0xc]
mov ecx, esi
push ebx
push eax
push edi
call fcn.0040a3c0
mov dword [esp + 0x20], 0x859f8387
mov byte [esp + 0x24], 0xf5
mov dword [esp + 0x25], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 8
ja 0x40ad0e
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 + 0x20]
add eax, 0x2a747a6c
xor eax, ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
add al, 0x7b
mov ecx, dword [esp]
mov byte [esp + ecx + 0x20], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 9
jb 0x40ace0
mov ecx, esi
push ebp
push dword [esp + 0x20]
push ebx
push edi
call fcn.0040a630
mov eax, dword [esi + 0x60]
mov dword [esp + 0x20], 0xd741d597
mov dword [esp + 0x24], 0xd35ed146
mov dword [esp + 0x28], 0xcf58cd51
mov dword [esp + 0x2c], 0xcb9fc944
mov dword [esp + 0x30], 0xc74fc5a8
mov dword [esp + 0x34], 0xc35fc150
mov dword [esp + 0x38], 0xffdefdb6
mov dword [esp + 0x3c], 0xfb77f96d
mov dword [esp + 0x40], 0xf77af560
mov dword [esp + 0x44], 0xf362f169
mov dword [esp + 0x48], 0xef7ced8d
mov dword [esp + 0x4c], 0xebbde964
mov dword [esp + 0x50], 0xe771e57a
mov dword [esp + 0x54], 0xe377e172
mov dword [esp + 0x58], 0x1f821d49
mov dword [esp + 0x5c], 0x1b961979
mov dword [esp + 0x60], 0x175d1575
mov dword [esp + 0x64], 0x13701130
mov dword [esp + 0x68], 0xf830d9b
mov dword [esp + 0x6c], 0xb96099e
mov dword [esp + 0x70], 0x7940565
mov dword [esp + 0x74], 0x3470189
mov dword [esp + 0x78], 0x3fa33d5e
mov dword [esp + 0x7c], 0x3b773970
mov dword [esp + 0x80], 0x37ab35a8
mov dword [esp + 0x84], 0x33ab317d
mov dword [esp + 0x88], 0x2fb22dbc
mov dword [esp + 0x8c], 0x2b4929bf
mov dword [esp + 0x90], 0x27bb25bd
mov dword [esp + 0x94], 0x23b021b2
mov dword [esp + 0x98], 0x5f0f5dc1
mov dword [esp + 0x9c], 0x5b60596d
mov word [esp + 0xa0], 0x5554
mov dword [esp + 0xa2], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0x85
ja 0x40ae93
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x20]
add ecx, 0xe3d26bc8
xor ecx, edx
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0xc]
add cl, 0xe4
mov edx, dword [esp]
mov byte [esp + edx + 0x20], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0x86
jb 0x40ae60
mov dword [esp + 0xc], 0x30563262
mov dword [esp + 0x10], 0x34aa36a7
mov dword [esp + 0x14], 0x2a2b
mov byte [esp + 0x18], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 0xc
ja 0x40af17
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movzx edx, byte [esp + edx + 0xc]
lea ebx, [ecx + edx]
add ebx, 0xdea72028
add ecx, 0x28
and ecx, edx
mov edx, ebx
xor edx, ecx
add edx, ecx
not ecx
and ecx, ebx
add ecx, ecx
sub ecx, edx
mov dword [esp], ecx
mov ecx, dword [esp]
add cl, 0xe5
mov edx, dword [esp + 4]
mov byte [esp + edx + 0xc], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 0xd
jb 0x40aed0
push 0x493e0
push eax
push edi
push 0
push 0
lea eax, [esp + 0x34]
push eax
lea eax, [esp + 0x24]
push eax
call fcn.0040cbb0
add esp, 0x1c
mov ebx, eax
push edi
call fcn.00409a60
add esp, 4
mov eax, dword [esi + 0x60]
add dword [esi + 4], eax
mov dword [esi + 0x60], 0
mov eax, ebx
add esp, 0xa8
pop esi
pop edi
pop ebx
pop ebp
ret