Function at 0x40a360
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, 0x98
mov edi, dword [esp + 0xac]
mov dword [esp + 0x68], ecx
add edi, dword [ecx + 0x60]
mov dword [esp + 0x6c], 0xb7c8cee3
mov dword [esp + 0x70], 0x2bacbc5
mov dword [esp + 0x74], 0xcec2bcd8
mov dword [esp + 0x78], 0x432f11f6
mov dword [esp + 0x7c], 0x33352c40
mov dword [esp + 0x80], 0x4b34343d
mov dword [esp + 0x84], 0x30f74df7
mov dword [esp + 0x88], 0x2023373e
mov dword [esp + 0x8c], 0xceccc850
mov word [esp + 0x90], 0xd9ce
mov dword [esp + 0x92], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x29
ja 0x40a41e
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x6c]
add eax, 0x74943672
xor eax, ecx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
add al, 0xb2
mov ecx, dword [esp]
mov byte [esp + ecx + 0x6c], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x2a
jb 0x40a3f0
mov dword [esp], 0x677c7846
mov word [esp + 4], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 5
ja 0x40a488
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx]
lea edx, [eax + ecx]
add edx, 0x4600d6ec
add eax, 0x4600d6ec
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 + 0x10], eax
mov eax, dword [esp + 0x10]
add al, 0x78
mov ecx, dword [esp + 8]
mov byte [esp + ecx], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 6
jb 0x40a440
mov dword [esp + 0x10], 0x2a2c7077
mov dword [esp + 0x14], 0x26227478
mov dword [esp + 0x18], 0x253a3c77
mov dword [esp + 0x1c], 0x3e213a39
mov dword [esp + 0x20], 0x6e392d2a
mov dword [esp + 0x24], 0x2c538983
mov dword [esp + 0x28], 0x2b31272e
mov dword [esp + 0x2c], 0xd2aa9424
mov dword [esp + 0x30], 0xdcd3d3d9
mov dword [esp + 0x34], 0xdcd9d3d7
mov dword [esp + 0x38], 0xc38aadde
mov dword [esp + 0x3c], 0x86c5c9d9
mov dword [esp + 0x40], 0xdecedcd8
mov dword [esp + 0x44], 0xd2cc9fb5
mov dword [esp + 0x48], 0x97b9d0cf
mov dword [esp + 0x4c], 0xeef2f0d2
mov dword [esp + 0x50], 0xeba286aa
mov dword [esp + 0x54], 0xffe5fbf7
mov dword [esp + 0x58], 0x8ae1f8e3
mov word [esp + 0x5c], 0x57a6
mov word [esp + 0x62], 0
mov dword [esp + 0x5e], 0
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0xc]
cmp eax, 0x53
ja 0x40a59a
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
movzx ecx, byte [esp + ecx + 0x10]
lea edx, [eax + ecx]
add edx, 0x3f8c51e3
add eax, 0x3f8c51e3
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 + 8], eax
mov eax, dword [esp + 8]
add al, 0x99
mov ecx, dword [esp + 0xc]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 0xc]
mov eax, dword [esp + 0xc]
cmp eax, 0x54
jb 0x40a550
mov eax, dword [esp + 0xb0]
movzx ecx, byte [esp + 0x10]
mov edx, edi
test cl, cl
je 0x40a5cb
lea esi, [esp + 0x11]
mov edx, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [esi]
inc esi
test cl, cl
jne 0x40a5c0
mov byte [edx], 0
movzx ecx, byte [eax]
test cl, cl
je 0x40a5eb
inc eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x40a5e0
mov byte [edx], 0
movzx eax, byte [esp]
test al, al
je 0x40a60b
lea ecx, [esp + 1]
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40a600
mov ebx, dword [esp + 0xb8]
mov ebp, dword [esp + 0xb4]
mov byte [edx], 0
movzx eax, byte [esp + 0x6c]
test al, al
mov dword [esp + 0x64], edi
je 0x40a63b
lea ecx, [esp + 0x6d]
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40a630
mov byte [edx], 0
mov ecx, ebx
shr ecx, 2
mov eax, ebp
mov edi, edx
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov eax, ebx
and eax, 0xfffffffc
lea esi, [edx + eax]
add eax, ebp
mov ecx, ebx
shr ecx, 1
and ecx, 1
mov ebp, eax
mov edi, esi
xchg esi, ebp
rep movsw word es:[edi], word [esi]
xchg esi, ebp
test bl, 1
je 0x40a678
mov ecx, ebx
and ecx, 2
movzx eax, byte [eax + ecx]
mov byte [esi + ecx], al
mov dword [esp + 0x10], 0x3a3bd7d5
mov dword [esp + 0x14], 0x36320002
mov dword [esp + 0x18], 0x7e4b0404
mov dword [esp + 0x1c], 0x7c017904
mov dword [esp + 0x20], 0x1007c79
mov dword [esp + 0x24], 0xadaf4c71
mov word [esp + 0x28], 0xafad
mov byte [esp + 0x2a], 0x86
mov dword [esp + 0x2b], 0
mov byte [esp + 0x2f], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x1f
mov edi, dword [esp + 0x64]
ja 0x40a71b
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 + 0x10]
lea esi, [eax + ecx]
add esi, 0xb4026136
add eax, 0xb4026136
and eax, ecx
add eax, eax
sub esi, eax
mov dword [esp + 0x6c], esi
mov eax, dword [esp + 0x6c]
add al, 0x2a
mov ecx, dword [esp]
mov byte [esp + ecx + 0x10], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x20
jb 0x40a6e0
add edx, ebx
movzx eax, byte [esp + 0x10]
test al, al
je 0x40a73b
lea ecx, [esp + 0x11]
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40a730
mov byte [edx], 0
sub edx, edi
mov eax, dword [esp + 0x68]
add dword [eax + 0x60], edx
add esp, 0x98
pop esi
pop edi
pop ebx
pop ebp
ret 0x10