Function at 0x40a910
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, 0x8c
mov dword [esp + 0xc], ecx
mov eax, dword [ecx + 0x80]
mov dword [esp], eax
mov dword [esp + 0x18], 0x4f444673
mov dword [esp + 0x1c], 0xa424b51
mov dword [esp + 0x20], 0x564a4064
mov dword [esp + 0x24], 0x3b27657e
mov dword [esp + 0x28], 0x2b21203c
mov dword [esp + 0x2c], 0x33382039
mov dword [esp + 0x30], 0x3c7f317f
mov dword [esp + 0x34], 0x343b3f36
mov dword [esp + 0x38], 0x4658442c
mov word [esp + 0x3c], 0x5d56
mov dword [esp + 0x3e], 0
mov word [esp + 0x42], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, eax
add bl, 0xb4
xor bl, byte [esp + eax + 0x18]
add bl, 0x7c
mov byte [esp + eax + 0x18], bl
inc eax
cmp eax, 0x2c
jne 0x40a990
mov dword [esp + 0x10], 0x7164609e
mov dword [esp + 0x14], 0
mov edx, 0x95
mov ebp, 0xc248ef6a
movzx esi, byte [esp + edx - 0x85]
mov eax, ebp
or eax, esi
lea ebx, [ebp + 0x3db71100]
and ebx, 0x4d
mov edi, edx
and edi, 0x82
or edi, ebx
xor edi, esi
xor edi, 0x5d
and edi, esi
not eax
or eax, edi
mov esi, eax
and esi, 0x9240016
mov edi, esi
not edi
add eax, edi
add eax, 0xcb6cad17
mov edi, eax
and edi, esi
xor esi, eax
lea eax, [esi + edi*2]
inc al
mov byte [esp + edx - 0x85], al
inc edx
dec ebp
cmp edx, 0x9d
jne 0x40a9c0
mov dword [esp + 0x4c], 0xac814b4d
mov dword [esp + 0x50], 0xa9a3d1aa
mov dword [esp + 0x54], 0xa28e64dc
mov dword [esp + 0x58], 0xdca1dddf
mov dword [esp + 0x5c], 0x9c9be599
mov dword [esp + 0x60], 0x9156af9a
mov dword [esp + 0x64], 0x5697eb97
mov dword [esp + 0x68], 0x9eea9c98
mov dword [esp + 0x6c], 0x828c41bb
mov dword [esp + 0x70], 0x45bb8089
mov dword [esp + 0x74], 0x8e86808e
mov dword [esp + 0x78], 0x894eb64e
mov dword [esp + 0x7c], 0xfdf7fdf9
mov dword [esp + 0x80], 0xcaf3f8f5
mov word [esp + 0x84], 0x193a
mov dword [esp + 0x86], 0
mov word [esp + 0x8a], 0
mov esi, 0x10
mov edi, 0x3a0dd4ef
mov ecx, dword [esp + 0xa0]
nop
nop
nop
nop
movzx eax, byte [esp + esi + 0x3c]
mov edx, esi
xor edx, edi
and edx, eax
xor edx, edi
mov eax, 0xae
sub eax, edx
and edx, 1
or eax, 1
add eax, edx
mov byte [esp + esi + 0x3c], al
inc esi
dec edi
cmp esi, 0x50
jne 0x40aac0
add ecx, dword [esp]
mov word [esp + 4], 0xf8ff
mov byte [esp + 6], 0x8a
mov word [esp + 7], 0
mov byte [esp + 9], 0
mov eax, 0xd25d7623
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 0x2da289e1]
xor edx, eax
mov esi, edx
and esi, 1
xor edx, 1
lea edx, [edx + esi*2]
add dl, 0x50
mov byte [esp + eax + 0x2da289e1], dl
inc eax
cmp eax, 0xd25d7629
jne 0x40ab10
movzx eax, byte [esp + 4]
mov edx, ecx
test al, al
je 0x40ab5b
lea esi, [esp + 5]
mov edx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [esi]
inc esi
test al, al
jne 0x40ab50
mov dword [esp + 0x44], ecx
mov byte [edx], 0
mov ecx, dword [esp + 0xc]
movzx eax, byte [ecx + 0x60]
test al, al
je 0x40ab8d
lea esi, [ecx + 0x61]
mov ecx, dword [esp + 0xa4]
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [esi]
inc esi
test al, al
jne 0x40ab80
jmp 0x40ab94
mov ecx, dword [esp + 0xa4]
mov byte [edx], 0
movzx eax, byte [esp + 0x4c]
test al, al
je 0x40abbb
lea esi, [esp + 0x4d]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [esi]
inc esi
test al, al
jne 0x40abb0
mov byte [edx], 0
movzx eax, byte [ecx]
test al, al
je 0x40abdb
inc ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40abd0
mov byte [edx], 0
movzx eax, byte [esp + 0x10]
test al, al
je 0x40abfb
lea ecx, [esp + 0x11]
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40abf0
mov byte [edx], 0
movzx eax, byte [esp + 0x18]
test al, al
je 0x40ac1b
lea ecx, [esp + 0x19]
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40ac10
mov byte [edx], 0
mov ebx, dword [esp + 0xac]
mov ecx, ebx
shr ecx, 2
mov esi, dword [esp + 0xa8]
mov eax, esi
mov edi, edx
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov eax, ebx
and eax, 0xfffffffc
add edx, eax
add eax, esi
mov ecx, ebx
shr ecx, 1
and ecx, 1
mov esi, eax
mov edi, edx
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
mov ecx, ebx
and ecx, 2
add edx, ecx
test bl, 1
je 0x40ac67
movzx eax, byte [eax + ecx]
mov byte [edx], al
inc edx
mov dword [esp + 0x4c], 0x999f9b9d
mov byte [esp + 0x50], 0xe4
mov dword [esp + 0x51], 0
mov dword [esp + 0x54], 0
mov ebx, 0x192d8328
mov ebp, 0xe6d27cd7
nop
nop
movzx esi, byte [esp + ebp + 0x192d8375]
mov dword [esp + 0x48], esi
lea eax, [ebp + 1]
mov ecx, eax
mov dword [esp], eax
or ecx, esi
not esi
lea edi, [ebx - 1]
or esi, edi
and esi, ecx
not esi
and esi, eax
mov ecx, esi
and ecx, 0xe6d27cfd
mov eax, esi
and eax, 2
or esi, 2
imul esi, eax
xor eax, 2
imul eax, ecx
add esi, eax
add ebx, esi
mov ecx, ebp
sub ecx, esi
mov eax, dword [esp + 0x48]
xor ebx, eax
and ecx, eax
add ecx, ecx
sub ecx, ebx
add ecx, 0x7de38fc7
mov eax, ecx
and eax, 1
xor ecx, 1
lea eax, [ecx + eax*2]
mov byte [esp + ebp + 0x192d8375], al
mov ebp, dword [esp]
mov ebx, edi
cmp edi, 0x192d831c
jne 0x40ac90
mov dword [esp + 0x18], 0xbab96597
mov byte [esp + 0x1c], 0x68
mov dword [esp + 0x1d], 0
mov dword [esp + 0x20], 0
mov eax, 0x17
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 1]
mov ebx, ecx
and ebx, eax
add bl, bl
sub cl, bl
movzx ecx, cl
add ecx, eax
add cl, 0x8d
mov byte [esp + eax + 1], cl
inc eax
cmp eax, 0x23
jne 0x40ad30
movzx eax, byte [esp + 0x18]
test al, al
mov esi, dword [esp + 0xc]
je 0x40ad6b
lea ecx, [esp + 0x19]
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40ad60
mov byte [edx], 0
movzx eax, byte [esi + 0x60]
test al, al
je 0x40ad8b
lea ecx, [esi + 0x61]
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40ad80
mov byte [edx], 0
movzx eax, byte [esp + 0x4c]
test al, al
je 0x40adab
lea ecx, [esp + 0x4d]
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40ada0
mov byte [edx], 0
sub edx, dword [esp + 0x44]
add dword [esi + 0x80], edx
add esp, 0x8c
pop esi
pop edi
pop ebx
pop ebp
ret 0x10