Function at 0x4099b0
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, 0xfffffff0
sub esp, 0xe0
mov esi, dword [ebp + 8]
mov dword [esp + 0xac], ecx
add esi, dword [ecx + 0x60]
mov dword [esp + 0x70], 0x8fb6b05b
mov dword [esp + 0x74], 0x6890abbd
mov dword [esp + 0x78], 0xa4a892b2
mov dword [esp + 0x7c], 0x9bb77550
mov dword [esp + 0x80], 0xabadb29a
mov dword [esp + 0x84], 0xe3dad2a5
mov dword [esp + 0x88], 0xda1fe11f
mov dword [esp + 0x8c], 0xdadbdfc8
mov dword [esp + 0x90], 0x747a76ea
mov word [esp + 0x94], 0x7d78
mov dword [esp + 0x96], 0
mov dword [esp + 0x9a], 0
mov word [esp + 0x9e], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 0x2f
ja 0x409a8f
nop
nop
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
movzx ecx, byte [esp + ecx + 0x70]
lea edx, [eax + 0x2b]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add al, 0xfe
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x70], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 0x30
jb 0x409a60
mov byte [esp + 0xc8], 0
mov dword [esp + 0xc4], 0
mov dword [esp + 0xc0], 0
mov dword [esp + 0xbc], 0
mov dword [esp + 0xb8], 0
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb0], 0x6b5c5832
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 0x18
ja 0x409b3d
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
movzx ecx, byte [esp + ecx + 0xb0]
mov edx, eax
and edx, 0x394f0972
xor eax, 0xb94f0972
lea eax, [eax + edx*2]
lea edx, [eax + ecx]
and eax, ecx
add eax, eax
mov ecx, eax
xor ecx, edx
not eax
and eax, edx
add eax, eax
sub eax, ecx
add al, 0xe2
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0xb0], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 0x19
jb 0x409af0
mov dword [esp + 0x10], 0x1c1a2619
mov dword [esp + 0x14], 0x18182a32
mov dword [esp + 0x18], 0x17606a29
mov dword [esp + 0x1c], 0x106f1063
mov dword [esp + 0x20], 0x380f7b64
mov dword [esp + 0x24], 0x7e29d7d5
mov dword [esp + 0x28], 0x7d077570
mov dword [esp + 0x2c], 0x7c203a76
mov dword [esp + 0x30], 0xe090973
mov dword [esp + 0x34], 0xe070901
mov dword [esp + 0x38], 0x75b05b00
mov dword [esp + 0x3c], 0x480b0703
mov dword [esp + 0x40], 0x681c6a72
mov dword [esp + 0x44], 0x6c12ad47
mov dword [esp + 0x48], 0xa14f6611
mov dword [esp + 0x4c], 0x60181e64
mov dword [esp + 0x50], 0x5d9874a4
mov dword [esp + 0x54], 0x215b2121
mov dword [esp + 0x58], 0x7c572e5d
mov word [esp + 0x5c], 0xb590
mov byte [esp + 0x60], 0
mov word [esp + 0x5e], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0x50
ja 0x409c2f
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x10]
lea edx, [eax + 0x1f]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add al, 0x46
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0x51
jb 0x409c00
mov eax, dword [ebp + 0xc]
movzx ecx, byte [esp + 0x10]
mov edx, esi
test cl, cl
je 0x409c5b
lea edi, [esp + 0x11]
mov edx, esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [edi]
inc edi
test cl, cl
jne 0x409c50
mov byte [edx], 0
movzx ecx, byte [eax]
test cl, cl
je 0x409c7b
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 0x409c70
mov byte [edx], 0
movzx eax, byte [esp + 0xb0]
test al, al
je 0x409cab
lea ecx, [esp + 0xb1]
nop
nop
nop
nop
nop
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 0x409ca0
mov edi, dword [ebp + 0x14]
mov byte [edx], 0
movzx eax, byte [esp + 0x70]
test al, al
mov dword [esp + 0xc], esi
je 0x409cdb
lea ecx, [esp + 0x71]
nop
nop
nop
nop
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 0x409cd0
mov esi, dword [ebp + 0x10]
mov byte [edx], 0
mov ecx, edi
and ecx, 3
je 0x409cff
cmp ecx, 2
jne 0x409d11
mov ecx, edi
shr ecx, 1
mov edi, edx
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
jmp 0x409dad
mov ecx, edi
shr ecx, 2
mov edi, edx
xchg esi, esi
rep movsd dword es:[edi], dword [esi]
xchg esi, esi
jmp 0x409dad
test edi, edi
je 0x409dad
mov eax, dword [ebp + 0x14]
mov edi, eax
and edi, 7
je 0x409d4e
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esi + ecx]
mov byte [edx + ecx], bl
inc ecx
cmp edi, ecx
jne 0x409d30
add esi, ecx
mov eax, dword [ebp + 0x14]
mov edi, eax
sub edi, ecx
add ecx, edx
cmp eax, 8
jae 0x409d57
jmp 0x409dad
mov edi, eax
mov ecx, edx
cmp eax, 8
jb 0x409dad
xor ebx, ebx
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esi + ebx]
mov byte [ecx + ebx], al
movzx eax, byte [esi + ebx + 1]
mov byte [ecx + ebx + 1], al
movzx eax, byte [esi + ebx + 2]
mov byte [ecx + ebx + 2], al
movzx eax, byte [esi + ebx + 3]
mov byte [ecx + ebx + 3], al
movzx eax, byte [esi + ebx + 4]
mov byte [ecx + ebx + 4], al
movzx eax, byte [esi + ebx + 5]
mov byte [ecx + ebx + 5], al
movzx eax, byte [esi + ebx + 6]
mov byte [ecx + ebx + 6], al
movzx eax, byte [esi + ebx + 7]
mov byte [ecx + ebx + 7], al
add ebx, 8
cmp edi, ebx
jne 0x409d60
mov dword [esp + 0x10], 0x74775b51
mov dword [esp + 0x14], 0x10142220
mov dword [esp + 0x18], 0x20172622
mov dword [esp + 0x1c], 0x2a25292a
mov dword [esp + 0x20], 0x21222e2d
mov dword [esp + 0x24], 0x757b5e2d
mov word [esp + 0x28], 0x7379
mov byte [esp + 0x2a], 0x68
mov dword [esp + 0x2b], 0
mov dword [esp + 0x2f], 0
mov dword [esp + 0x33], 0
mov dword [esp + 0x70], 0
mov eax, dword [esp + 0x70]
cmp eax, 0x26
ja 0x409e67
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x70]
movzx esi, byte [esp + eax + 0x10]
lea eax, [ecx + esi]
add eax, 0x1fc84b
add ecx, 0x1fc84b
and ecx, esi
add ecx, ecx
sub eax, ecx
mov ecx, eax
or ecx, 0xf2
and eax, 0xf2
add eax, ecx
inc al
mov ecx, dword [esp + 0x70]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 0x70]
mov eax, dword [esp + 0x70]
cmp eax, 0x27
jb 0x409e20
add edx, dword [ebp + 0x14]
movzx eax, byte [esp + 0x10]
test al, al
je 0x409e8d
lea ecx, [esp + 0x11]
mov esi, dword [esp + 0xc]
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x409e80
jmp 0x409e91
mov esi, dword [esp + 0xc]
mov byte [edx], 0
sub edx, esi
mov eax, dword [esp + 0xac]
add dword [eax + 0x60], edx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0x10