Function at 0x409d70
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, 0x80
mov esi, dword [esp + 0x94]
mov dword [esp + 4], ecx
mov eax, dword [ecx + 0x80]
mov dword [esp], eax
mov dword [esp + 0x18], 0x5000e59
mov dword [esp + 0x1c], 0x4a060d37
mov dword [esp + 0x20], 0x2e061c20
mov dword [esp + 0x24], 0x19296b42
mov dword [esp + 0x28], 0x192b2c18
mov dword [esp + 0x2c], 0x111c241f
mov dword [esp + 0x30], 0xe8590f55
mov dword [esp + 0x34], 0xd8dde1da
mov dword [esp + 0x38], 0x8e8480e8
mov dword [esp + 0x3c], 0x738a
xor ebx, ebx
mov eax, ebx
add al, 0x65
xor al, byte [esp + ebx + 0x18]
add al, 7
mov byte [esp + ebx + 0x18], al
inc ebx
cmp ebx, 0x28
jne 0x409de0
mov dword [esp + 0x10], 0x13182432
mov dword [esp + 0x14], 0
xor ebx, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ebx
add al, 4
xor al, byte [esp + ebx + 0x10]
add al, 0xec
mov byte [esp + ebx + 0x10], al
inc ebx
cmp ebx, 8
jne 0x409e10
mov dword [esp + 0x40], 0x3cc99795
mov dword [esp + 0x44], 0x3127393e
mov dword [esp + 0x48], 0x3ec2fc34
mov dword [esp + 0x4c], 0x2c293533
mov dword [esp + 0x50], 0x2c272d21
mov dword [esp + 0x54], 0x29f2d32e
mov dword [esp + 0x58], 0xea2b2723
mov dword [esp + 0x5c], 0x4a5e3430
mov dword [esp + 0x60], 0x4e5c89a7
mov dword [esp + 0x64], 0x85af4851
mov dword [esp + 0x68], 0x425a585a
mov dword [esp + 0x6c], 0x419aaa82
mov dword [esp + 0x70], 0x4d5b4541
mov dword [esp + 0x74], 0xbe57405d
mov word [esp + 0x78], 0xf196
mov dword [esp + 0x7a], 0
mov byte [esp + 0x7e], 0
mov eax, 0x34830022
mov edx, 0xcb7cffdd
mov ecx, esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + eax - 0x3482ffe2]
mov ebp, edx
and ebp, 0x80003a31
mov edi, eax
and edi, 0x4e
or edi, ebp
xor edi, 0x4b7cc5ce
and edi, edx
not edi
and edi, ebx
or ebx, eax
lea ebp, [edi + edi]
not ebp
add ebp, edi
mov edi, ebx
not edi
or edi, ebp
mov esi, 0xbe
sub esi, ebx
sub esi, edi
add ebx, edi
inc ebx
and esi, 0xeb
and ebx, 0x14
sub ebx, esi
inc bl
mov byte [esp + eax - 0x3482ffe2], bl
inc eax
dec edx
cmp eax, 0x34830061
jne 0x409ec0
add ecx, dword [esp]
mov word [esp + 8], 0x686f
mov byte [esp + 0xa], 0x1a
mov word [esp + 0xb], 0
lea edx, [esp + 8]
mov edi, 0xc4
nop
nop
nop
nop
nop
nop
movzx eax, byte [edx]
mov esi, edi
and esi, eax
or eax, edi
not eax
add eax, esi
add al, 0xd9
mov byte [edx], al
inc edx
dec edi
cmp edi, 0xbf
jne 0x409f40
movzx ebx, byte [esp + 8]
mov edx, ecx
test bl, bl
je 0x409f7b
lea edi, [esp + 9]
mov edx, ecx
nop
nop
nop
nop
mov byte [edx], bl
inc edx
movzx ebx, byte [edi]
inc edi
test bl, bl
jne 0x409f70
mov byte [edx], 0
mov eax, dword [esp + 4]
movzx ebx, byte [eax + 0x60]
test bl, bl
mov esi, dword [esp + 0xa0]
je 0x409fad
lea edi, [eax + 0x61]
mov eax, dword [esp + 0x98]
nop
nop
nop
nop
nop
mov byte [edx], bl
inc edx
movzx ebx, byte [edi]
inc edi
test bl, bl
jne 0x409fa0
jmp 0x409fb4
mov eax, dword [esp + 0x98]
mov byte [edx], 0
movzx ebx, byte [esp + 0x40]
test bl, bl
je 0x409fdb
lea edi, [esp + 0x41]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], bl
inc edx
movzx ebx, byte [edi]
inc edi
test bl, bl
jne 0x409fd0
mov byte [edx], 0
movzx ebx, byte [eax]
test bl, bl
mov dword [esp], ecx
je 0x409ffb
inc eax
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], bl
inc edx
movzx ebx, byte [eax]
inc eax
test bl, bl
jne 0x409ff0
mov byte [edx], 0
movzx ecx, byte [esp + 0x10]
test cl, cl
je 0x40a01b
lea edi, [esp + 0x11]
nop
nop
nop
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [edi]
inc edi
test cl, cl
jne 0x40a010
mov byte [edx], 0
movzx ecx, byte [esp + 0x18]
test cl, cl
je 0x40a03b
lea edi, [esp + 0x19]
nop
nop
nop
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [edi]
inc edi
test cl, cl
jne 0x40a030
mov byte [edx], 0
mov ecx, esi
shr ecx, 2
mov ebx, dword [esp + 0x9c]
mov eax, ebx
mov edi, edx
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov ebp, esi
and ebp, 0xfffffffc
add edx, ebp
add ebp, ebx
mov ebx, esi
and ebx, 3
mov ecx, ebx
shr ecx, 1
mov eax, ebp
mov edi, edx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, ebx
xor eax, 1
or esi, 2
and esi, eax
add edx, esi
mov eax, ebx
xor eax, 0xfffffffe
or ebx, 1
and ebx, eax
je 0x40a0b1
movzx eax, byte [ebp + esi]
mov byte [edx], al
cmp ebx, 1
jne 0x40a094
inc edx
jmp 0x40a0b1
movzx eax, byte [ebp + esi + 1]
mov byte [edx + 1], al
cmp ebx, 2
jne 0x40a0a6
add edx, 2
jmp 0x40a0b1
movzx eax, byte [ebp + esi + 2]
mov byte [edx + 2], al
add edx, 3
mov dword [esp + 0x18], 0x61636f6d
mov byte [esp + 0x1c], 0x74
mov word [esp + 0x1d], 0
mov byte [esp + 0x1f], 0
xor ecx, ecx
nop
nop
nop
nop
movzx esi, byte [esp + ecx + 0x18]
lea edi, [ecx - 0x5f467eea]
mov eax, 0xe9
sub eax, ecx
xor eax, edi
and eax, esi
xor eax, edi
mov esi, eax
xor esi, 0x239f856e
or eax, 0xdc607a91
and esi, eax
add esi, eax
mov eax, esi
and eax, 1
xor esi, 1
lea eax, [esi + eax*2]
mov byte [esp + ecx + 0x18], al
lea eax, [ecx + ecx]
and eax, 2
mov esi, eax
and esi, ecx
xor eax, ecx
xor eax, 1
lea ecx, [eax + esi*2]
cmp ecx, 8
jb 0x40a0d0
mov dword [esp + 0x40], 0xaaa98d8f
mov byte [esp + 0x44], 0x98
mov dword [esp + 0x45], 0
xor ecx, ecx
xor edi, edi
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + edi + 0x40]
mov esi, ecx
and esi, 0x16
mov ebx, edi
xor ebx, 0x8f2dc9b
add ebx, esi
xor ebx, eax
lea eax, [ebx - 0x2cbe4f08]
mov esi, ebx
and esi, 1
mov ebp, eax
and ebp, 0xfe
xor eax, 1
add ebx, esi
add ebx, 0xd341b0f8
add ebx, eax
sub ebx, ebp
mov byte [esp + edi + 0x40], bl
inc edi
add ecx, 2
cmp edi, 9
jne 0x40a140
movzx ecx, byte [esp + 0x40]
test cl, cl
je 0x40a1ad
lea esi, [esp + 0x41]
mov eax, dword [esp + 4]
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 0x40a1a0
jmp 0x40a1b1
mov eax, dword [esp + 4]
mov byte [edx], 0
movzx ecx, byte [eax + 0x60]
test cl, cl
je 0x40a1cb
lea esi, [eax + 0x61]
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [esi]
inc esi
test cl, cl
jne 0x40a1c0
mov byte [edx], 0
movzx ecx, byte [esp + 0x18]
test cl, cl
je 0x40a1eb
lea esi, [esp + 0x19]
nop
nop
nop
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [esi]
inc esi
test cl, cl
jne 0x40a1e0
mov byte [edx], 0
sub edx, dword [esp]
add dword [eax + 0x80], edx
add esp, 0x80
pop esi
pop edi
pop ebx
pop ebp
ret 0x10