Function at 0x409d70
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, 0xb8
mov edi, dword [ebp + 8]
add edi, dword [ecx + 0x60]
mov dword [esp + 0x80], 0x776c6e83
mov dword [esp + 0x84], 0xaa726b61
mov dword [esp + 0x88], 0x6e7a709c
mov dword [esp + 0x8c], 0x7b6fadb6
mov dword [esp + 0x90], 0x7b717064
mov dword [esp + 0x94], 0x63787079
mov dword [esp + 0x98], 0x74b761b7
mov dword [esp + 0x9c], 0x7c7b777e
mov dword [esp + 0xa0], 0x2e282c94
mov dword [esp + 0xa4], 0x252e
mov byte [esp + 0xa8], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0x28
ja 0x409e53
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov edx, dword [esp + 8]
movzx esi, byte [esp + edx + 0x80]
lea edx, [eax - 0x66bf3920]
add eax, 0xe0
and eax, esi
or edx, esi
sub edx, eax
mov dword [esp + 0x28], edx
mov eax, dword [esp + 0x28]
add al, 0xe0
mov edx, dword [esp + 8]
mov byte [esp + edx + 0x80], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0x29
jb 0x409e10
mov dword [esp + 8], 0x33080c12
mov dword [esp + 0xc], 0
mov dword [esp + 0xf], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xa
ja 0x409ec5
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov edx, dword [esp]
movzx esi, byte [esp + edx + 8]
lea edx, [eax + esi]
add edx, 0xac8ad7a8
add eax, 0xa8
and eax, esi
add eax, eax
mov esi, eax
xor esi, edx
not eax
and eax, edx
add eax, eax
sub eax, esi
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
add al, 0x68
mov edx, dword [esp]
mov byte [esp + edx + 8], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xb
jb 0x409e80
mov dword [esp + 0x20], ecx
mov dword [esp + 0x28], 0x76743839
mov dword [esp + 0x2c], 0x7a7a0400
mov dword [esp + 0x30], 0x7f727c09
mov dword [esp + 0x34], 0x62677e73
mov dword [esp + 0x38], 0x2a675352
mov dword [esp + 0x3c], 0x6409cfcd
mov dword [esp + 0x40], 0x616f5966
mov dword [esp + 0x44], 0x1672245c
mov dword [esp + 0x48], 0x24191d23
mov dword [esp + 0x4c], 0x141f2511
mov dword [esp + 0x50], 0x19426316
mov dword [esp + 0x54], 0x4a0b2f13
mov dword [esp + 0x58], 0x1a361c00
mov dword [esp + 0x5c], 0x1604597f
mov dword [esp + 0x60], 0x4d770801
mov dword [esp + 0x64], 0x323a080a
mov dword [esp + 0x68], 0x316a4a72
mov dword [esp + 0x6c], 0x353b3d31
mov dword [esp + 0x70], 0x463f3025
mov word [esp + 0x74], 0x817e
mov byte [esp + 0x78], 0
mov word [esp + 0x76], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0x50
ja 0x409fd0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x28]
add eax, 0xa01e63a2
xor eax, ecx
mov dword [esp], eax
mov eax, dword [esp]
add al, 0x92
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x28], al
mov eax, dword [esp + 4]
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
mov dword [esp + 4], eax
mov eax, dword [esp + 4]
cmp eax, 0x51
jb 0x409f90
mov eax, dword [ebp + 0xc]
movzx ecx, byte [esp + 0x28]
mov edx, edi
test cl, cl
je 0x409ffb
lea esi, [esp + 0x29]
mov edx, edi
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 0x409ff0
mov byte [edx], 0
movzx ecx, byte [eax]
test cl, cl
je 0x40a01b
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 0x40a010
mov byte [edx], 0
movzx eax, byte [esp + 8]
test al, al
je 0x40a03b
lea ecx, [esp + 9]
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40a030
mov esi, dword [ebp + 0x10]
mov byte [edx], 0
movzx eax, byte [esp + 0x80]
test al, al
mov dword [esp + 0x24], edi
je 0x40a06b
lea ecx, [esp + 0x81]
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40a060
mov byte [edx], 0
mov ebx, dword [ebp + 0x14]
mov ecx, ebx
shr ecx, 2
mov eax, esi
mov edi, edx
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov edi, esi
mov esi, ebx
and esi, 0xfffffffc
add esi, edx
mov ecx, ebx
xor ecx, 3
mov eax, ebx
or eax, 0xfffffffc
and eax, ecx
add eax, edi
and ebx, 3
mov dword [esp + 0x1c], ebx
shr ebx, 1
mov dword [esp + 0x18], eax
mov ecx, ebx
mov edi, esi
mov ebx, dword [esp + 0x18]
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
mov ebx, dword [esp + 0x1c]
mov ecx, ebx
not ecx
or ecx, 1
add ebx, ecx
mov dword [esp + 0x1c], ebx
inc ebx
je 0x40a15d
not ecx
add eax, ecx
mov ecx, dword [ebp + 0x14]
and ecx, 2
add esi, ecx
mov ecx, ebx
and ecx, 7
je 0x40a106
mov dword [esp + 0x18], ebx
xor edi, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [eax + edi]
mov byte [esi + edi], bl
inc edi
cmp ecx, edi
jne 0x40a0f0
add eax, edi
add esi, edi
mov ebx, dword [esp + 0x18]
sub ebx, edi
cmp dword [esp + 0x1c], 7
jb 0x40a15d
xor edi, edi
nop
movzx ecx, byte [eax + edi]
mov byte [esi + edi], cl
movzx ecx, byte [eax + edi + 1]
mov byte [esi + edi + 1], cl
movzx ecx, byte [eax + edi + 2]
mov byte [esi + edi + 2], cl
movzx ecx, byte [eax + edi + 3]
mov byte [esi + edi + 3], cl
movzx ecx, byte [eax + edi + 4]
mov byte [esi + edi + 4], cl
movzx ecx, byte [eax + edi + 5]
mov byte [esi + edi + 5], cl
movzx ecx, byte [eax + edi + 6]
mov byte [esi + edi + 6], cl
movzx ecx, byte [eax + edi + 7]
mov byte [esi + edi + 7], cl
add edi, 8
cmp ebx, edi
jne 0x40a110
mov dword [esp + 0x28], 0x44476379
mov dword [esp + 0x2c], 0x48b49a98
mov dword [esp + 0x30], 0x8847969a
mov dword [esp + 0x34], 0x92859182
mov dword [esp + 0x38], 0xf9faee8d
mov dword [esp + 0x3c], 0x15133eed
mov word [esp + 0x40], 0x1b11
mov dword [esp + 0x42], 0
mov dword [esp + 0x45], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0x20
ja 0x40a203
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x28]
lea esi, [eax - 0x17f6b351]
add eax, 0xaf
and eax, ecx
or esi, ecx
sub esi, eax
mov dword [esp + 0x80], esi
mov eax, dword [esp + 0x80]
add al, 0x37
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x28], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0x21
jb 0x40a1c0
add edx, dword [ebp + 0x14]
movzx eax, byte [esp + 0x28]
test al, al
mov edi, dword [esp + 0x24]
je 0x40a22d
lea ecx, [esp + 0x29]
mov esi, dword [esp + 0x20]
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40a220
jmp 0x40a231
mov esi, dword [esp + 0x20]
mov byte [edx], 0
sub edx, edi
add dword [esi + 0x60], edx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0x10