Function at 0x409a80
Capabilities:
Contain obfuscated stackstrings
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xa8
mov dword [esp + 0x68], ecx
mov eax, dword [ecx + 0x60]
mov dword [esp + 0xc], eax
mov dword [esp + 0x70], 0xd7d0de8b
mov dword [esp + 0x74], 0x9ad2d3e5
mov dword [esp + 0x78], 0x9eaaccf0
mov dword [esp + 0x7c], 0xab9fd9f6
mov dword [esp + 0x80], 0xab959ca8
mov dword [esp + 0x84], 0xa3a494ad
mov dword [esp + 0x88], 0xb8f7bde7
mov dword [esp + 0x8c], 0x888bb78e
mov dword [esp + 0x90], 0xdedcd0b8
mov word [esp + 0x94], 0x21de
mov dword [esp + 0x96], 0
mov dword [esp + 0x9a], 0
mov word [esp + 0x9e], 0
xor ebx, ebx
xor edi, edi
nop
movzx ecx, byte [esp + edi + 0x70]
mov dword [esp + 8], ecx
mov eax, edi
xor eax, 0x67d68fca
mov esi, ebx
and esi, 0x6a
sub esi, eax
mov eax, esi
not eax
or eax, ecx
add eax, esi
inc eax
mov edx, eax
and edx, 2
mov ecx, eax
or eax, 2
imul eax, edx
xor edx, 2
and ecx, 0xfffffffd
imul ecx, edx
sub eax, esi
add eax, ecx
mov ecx, eax
mov edx, dword [esp + 8]
xor ecx, edx
not eax
and eax, edx
add eax, eax
sub eax, ecx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
mov ecx, eax
not ecx
and eax, 0x85
and ecx, 0x7a
sub eax, ecx
mov byte [esp + edi + 0x70], al
inc edi
add ebx, 2
cmp edi, 0x30
jne 0x409b20
mov dword [esp], 0x3b323654
mov dword [esp + 4], 0
mov dword [esp + 0x10], 0x117d3
mov eax, dword [esp + 0x10]
add al, 0x4f
mov byte [esp], al
movzx ecx, byte [esp + 1]
mov eax, ecx
not eax
mov edx, eax
and edx, 0x11788
and ecx, 0x53
mov esi, eax
and esi, 0xd3c6a8ac
or esi, ecx
xor esi, 0x2c3840db
and eax, 0x88
or eax, esi
not eax
or eax, edx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
add al, 0x4f
mov byte [esp + 1], al
movzx ecx, byte [esp + 2]
mov eax, ecx
not eax
mov edx, eax
and edx, 0x11789
and ecx, 0x53
mov esi, eax
and esi, 0xd3c6a8ac
or esi, ecx
xor esi, 0x2c3840da
and eax, 0x89
or eax, esi
not eax
or eax, edx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
add al, 0x4f
mov byte [esp + 2], al
movzx ecx, byte [esp + 3]
mov eax, ecx
not eax
mov edx, eax
and edx, 0x1178a
and ecx, 0x53
mov esi, eax
and esi, 0xd3c6a8ac
or esi, ecx
xor esi, 0x2c3840d9
and eax, 0x8a
or eax, esi
not eax
or eax, edx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
add al, 0x4f
mov byte [esp + 3], al
movzx ecx, byte [esp + 4]
mov eax, ecx
not eax
mov edx, eax
and edx, 0x1178b
and ecx, 0x53
mov esi, eax
and esi, 0xd3c6a8ac
or esi, ecx
xor esi, 0x2c3840d8
and eax, 0x8b
or eax, esi
not eax
or eax, edx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
add al, 0x4f
mov byte [esp + 4], al
movzx ecx, byte [esp + 5]
mov eax, ecx
not eax
mov edx, eax
and edx, 0x1178c
and ecx, 0x53
mov esi, eax
and esi, 0xd3c6a8ac
or esi, ecx
xor esi, 0x2c3840df
and eax, 0x8c
or eax, esi
not eax
or eax, edx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
add al, 0x4f
mov byte [esp + 5], al
movzx ecx, byte [esp + 6]
mov eax, ecx
not eax
mov edx, eax
and edx, 0x1178d
and ecx, 0x53
mov esi, eax
and esi, 0xd3c6a8ac
or esi, ecx
xor esi, 0x2c3840de
and eax, 0x8d
or eax, esi
not eax
or eax, edx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
add al, 0x4f
mov byte [esp + 6], al
movzx ecx, byte [esp + 7]
mov eax, ecx
not eax
mov edx, eax
and edx, 0x1178e
and ecx, 0x53
mov esi, eax
and esi, 0xd3c6a8ac
or esi, ecx
xor esi, 0x2c3840dd
and eax, 0x8e
or eax, esi
not eax
or eax, edx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
add al, 0x4f
mov byte [esp + 7], al
mov dword [esp + 0x10], 0xe6e4d0d1
mov dword [esp + 0x14], 0xe2e2d4c8
mov dword [esp + 0x18], 0xdfaa9cd1
mov dword [esp + 0x1c], 0xdaa7deab
mov dword [esp + 0x20], 0xe2d7abaa
mov dword [esp + 0x24], 0xa4f10f0d
mov dword [esp + 0x28], 0xb9cfa1a6
mov dword [esp + 0x2c], 0xb6eaf4bc
mov dword [esp + 0x30], 0xb4b1bdbb
mov dword [esp + 0x34], 0xb4bfb5b9
mov dword [esp + 0x38], 0x41faebb6
mov dword [esp + 0x3c], 0x2434f4b
mov dword [esp + 0x40], 0x32463c38
mov dword [esp + 0x44], 0x3644f11f
mov dword [esp + 0x48], 0xed073049
mov dword [esp + 0x4c], 0x2a525052
mov dword [esp + 0x50], 0x59e202ea
mov dword [esp + 0x54], 0x55235d59
mov dword [esp + 0x58], 0x361f5825
mov word [esp + 0x5c], 0xf9de
mov word [esp + 0x66], 0
mov dword [esp + 0x62], 0
mov dword [esp + 0x5e], 0
xor esi, esi
movzx edx, byte [esp + esi + 0x10]
lea eax, [esi - 0x51dfb29f]
mov ecx, eax
and ecx, 0x20000856
xor eax, 0xe18ba856
lea edi, [eax + ecx*2]
mov eax, edi
and eax, 0x80000161
xor eax, 0xa0000961
and edi, 0x18bb29e
sub edi, eax
mov ebx, edi
and ebx, edx
lea eax, [ebx + ebx]
mov dword [esp + 8], eax
mov eax, ebx
and eax, 2
mov ecx, ebx
or ebx, 2
imul ebx, eax
xor eax, 2
and ecx, 0xfffffffd
imul ecx, eax
xor edi, edx
add edi, ebx
add edi, ecx
mov edx, edi
mov eax, dword [esp + 8]
xor edx, eax
not edi
or edi, eax
mov eax, edi
not eax
and edi, 2
mov ecx, eax
and ecx, 0xfffffffd
imul ecx, edi
mov edi, eax
and edi, 2
or eax, 2
imul eax, edi
sub eax, edx
add eax, ecx
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x6c]
add al, 0xa6
mov byte [esp + esi + 0x10], al
mov eax, esi
and eax, 1
xor esi, 1
lea esi, [esi + eax*2]
cmp esi, 0x58
jb 0x409e10
mov ecx, dword [ebp + 8]
add ecx, dword [esp + 0xc]
movzx eax, byte [esp + 0x10]
mov edx, ecx
test al, al
je 0x409edb
lea esi, [esp + 0x11]
mov edx, ecx
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [esi]
inc esi
test al, al
jne 0x409ed0
mov byte [edx], 0
mov esi, dword [ebp + 0xc]
movzx eax, byte [esi]
test al, al
je 0x409efb
inc esi
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [esi]
inc esi
test al, al
jne 0x409ef0
mov dword [esp + 0xc], ecx
mov byte [edx], 0
movzx eax, byte [esp]
test al, al
je 0x409f1b
lea ecx, [esp + 1]
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x409f10
mov byte [edx], 0
movzx eax, byte [esp + 0x70]
test al, al
je 0x409f3b
lea ecx, [esp + 0x71]
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x409f30
mov byte [edx], 0
mov eax, dword [ebp + 0x14]
mov ecx, eax
mov esi, eax
shr ecx, 2
mov ebx, dword [ebp + 0x10]
mov eax, ebx
mov edi, edx
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov ecx, esi
mov eax, esi
and eax, 0xfffffffc
lea esi, [edx + eax]
add eax, ebx
shr ecx, 1
and ecx, 1
mov ebx, eax
mov edi, esi
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
mov ecx, dword [ebp + 0x14]
test cl, 1
je 0x409f81
and ecx, 2
movzx eax, byte [eax + ecx]
mov byte [esi + ecx], al
mov dword [esp + 0x10], 0x18e70b05
mov dword [esp + 0x14], 0x2420524c
mov dword [esp + 0x18], 0x5c27564a
mov dword [esp + 0x1c], 0x42514552
mov dword [esp + 0x20], 0x4d525e59
mov dword [esp + 0x24], 0xe1eb0e41
mov word [esp + 0x28], 0xe3ed
mov byte [esp + 0x2a], 0xfc
mov dword [esp + 0x2b], 0
mov dword [esp + 0x2f], 0
mov byte [esp + 0x33], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + ecx + 0x10]
mov dword [esp + 8], eax
mov esi, ecx
xor esi, 0xc2b32982
mov edi, ecx
or edi, 0x3d4cd67d
and esi, edi
xor edi, esi
lea esi, [edi + esi*2]
mov edi, esi
and edi, eax
mov eax, edi
and eax, 0xfffffffd
mov ebx, edi
or ebx, 0xfffffffd
inc ebx
imul ebx, eax
mov eax, edi
and eax, 2
or edi, 2
imul edi, eax
sub ebx, edi
add esi, dword [esp + 8]
add esi, ebx
mov dword [esp + 0x70], esi
mov eax, dword [esp + 0x70]
add al, 0x95
mov byte [esp + ecx + 0x10], al
inc ecx
cmp ecx, 0x24
jne 0x409fe0
add edx, dword [ebp + 0x14]
movzx eax, byte [esp + 0x10]
test al, al
je 0x40a05b
lea ecx, [esp + 0x11]
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40a050
mov byte [edx], 0
sub edx, dword [esp + 0xc]
mov eax, dword [esp + 0x68]
add dword [eax + 0x60], edx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0x10