Function at 0x4097c0
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, 0x84
mov esi, dword [esp + 0x9c]
mov edx, dword [ecx + 0x80]
mov dword [esp + 0x14], 0xebecea3f
mov dword [esp + 0x18], 0x4ef6ef19
mov dword [esp + 0x1c], 0x2f6f814
mov dword [esp + 0x20], 0xff0b453a
mov dword [esp + 0x24], 0x70908fc
mov dword [esp + 0x28], 0x7000801
mov dword [esp + 0x2c], 0x4bb09c3
mov dword [esp + 0x30], 0xfcfffbf2
mov dword [esp + 0x34], 0x9290940c
mov dword [esp + 0x38], 0x9d92
mov byte [esp + 0x3c], 0
xor ebx, ebx
nop
nop
mov eax, ebx
add al, 0xea
xor al, byte [esp + ebx + 0x14]
add al, 0x6e
mov byte [esp + ebx + 0x14], al
inc ebx
cmp ebx, 0x29
jne 0x409830
mov dword [esp + 0xc], 0x493c3812
mov dword [esp + 0x10], 0
xor ebx, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ebx
add al, 0x73
xor al, byte [esp + ebx + 0xc]
add al, 0xc1
mov byte [esp + ebx + 0xc], al
inc ebx
cmp ebx, 8
jne 0x409860
mov dword [esp + 0x44], 0xd8f73d3f
mov dword [esp + 0x48], 0xd7ddcbda
mov dword [esp + 0x4c], 0xd6fe10c8
mov dword [esp + 0x50], 0x302f2fcd
mov dword [esp + 0x54], 0x282d372b
mov dword [esp + 0x58], 0x2fd6f12a
mov dword [esp + 0x5c], 0xe2213d25
mov dword [esp + 0x60], 0x3222302c
mov dword [esp + 0x64], 0x3638cbe9
mov dword [esp + 0x68], 0xfbe53c3b
mov dword [esp + 0x6c], 0x3a36343e
mov dword [esp + 0x70], 0x7fedafe
mov dword [esp + 0x74], 0xb010f0b
mov dword [esp + 0x78], 0xd60d0407
mov word [esp + 0x7c], 0x93ca
mov dword [esp + 0x7e], 0
mov edi, 0xcf842773
mov ebp, 0x8c
nop
nop
nop
movzx eax, byte [esp + edi + 0x307bd8d1]
mov ebx, ebp
xor ebx, edi
and ebx, eax
xor ebx, edi
mov eax, ebx
and eax, 1
xor ebx, 1
lea eax, [ebx + eax*2]
add al, 0xc0
mov byte [esp + edi + 0x307bd8d1], al
inc edi
dec ebp
cmp ebp, 0x4e
jne 0x409900
mov ebp, dword [esp + 0x98]
add ebp, edx
mov word [esp], 0xb8b7
mov byte [esp + 2], 0xea
mov dword [esp + 3], 0
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
mov eax, edx
add al, 0x57
xor al, byte [esp + edx]
add al, 0x4d
mov byte [esp + edx], al
mov eax, edx
and eax, 1
xor edx, 1
lea edx, [edx + eax*2]
cmp edx, 7
jb 0x409950
movzx ebx, byte [esp]
mov edx, ebp
test bl, bl
je 0x40998b
lea edi, [esp + 1]
mov edx, ebp
nop
nop
nop
nop
mov byte [edx], bl
inc edx
movzx ebx, byte [edi]
inc edi
test bl, bl
jne 0x409980
mov byte [edx], 0
movzx ebx, byte [ecx + 0x60]
test bl, bl
je 0x4099ab
lea edi, [ecx + 0x61]
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], bl
inc edx
movzx ebx, byte [edi]
inc edi
test bl, bl
jne 0x4099a0
mov byte [edx], 0
movzx ebx, byte [esp + 0x44]
test bl, bl
je 0x4099cb
lea edi, [esp + 0x45]
nop
nop
nop
nop
nop
mov byte [edx], bl
inc edx
movzx ebx, byte [edi]
inc edi
test bl, bl
jne 0x4099c0
mov byte [edx], 0
movzx ebx, byte [esi]
test bl, bl
je 0x4099eb
inc esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], bl
inc edx
movzx ebx, byte [esi]
inc esi
test bl, bl
jne 0x4099e0
mov byte [edx], 0
movzx eax, byte [esp + 0xc]
test al, al
je 0x409a0b
lea edi, [esp + 0xd]
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [edi]
inc edi
test al, al
jne 0x409a00
mov dword [esp + 0x40], ecx
mov byte [edx], 0
movzx ecx, byte [esp + 0x14]
test cl, cl
mov dword [esp + 8], ebp
je 0x409a3b
lea edi, [esp + 0x15]
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 0x409a30
mov byte [edx], 0
mov ebx, dword [esp + 0xa4]
mov ecx, ebx
shr ecx, 2
mov esi, dword [esp + 0xa0]
mov eax, esi
mov edi, edx
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov ebp, ebx
and ebp, 0xfffffffc
add edx, ebp
add ebp, esi
mov ecx, ebx
shr ecx, 1
and ecx, 1
mov eax, ebp
mov edi, edx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov ecx, ebx
and ecx, 2
add edx, ecx
test bl, 1
je 0x409a86
movzx eax, byte [ebp + ecx]
mov byte [edx], al
inc edx
mov ebx, dword [esp + 8]
mov dword [esp + 0x44], 0x1037f7d
mov byte [esp + 0x48], 0x74
mov word [esp + 0x49], 0
mov byte [esp + 0x4b], 0
xor ecx, ecx
mov esi, dword [esp + 0x40]
nop
nop
nop
nop
nop
nop
nop
mov eax, ecx
add al, 0x3e
xor al, byte [esp + ecx + 0x44]
add al, 0xca
mov byte [esp + ecx + 0x44], al
inc ecx
cmp ecx, 8
jne 0x409ab0
mov dword [esp + 0x14], 0x96914d73
mov byte [esp + 0x18], 0x40
mov word [esp + 0x19], 0
mov byte [esp + 0x1b], 0
xor ecx, ecx
nop
mov eax, ecx
add al, 0x91
xor al, byte [esp + ecx + 0x14]
add al, 0x2b
mov byte [esp + ecx + 0x14], al
inc ecx
cmp ecx, 8
jne 0x409ae0
movzx ecx, byte [esp + 0x14]
test cl, cl
je 0x409b1b
lea edi, [esp + 0x15]
nop
nop
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 0x409b10
mov byte [edx], 0
movzx ecx, byte [esi + 0x60]
test cl, cl
je 0x409b3b
lea edi, [esi + 0x61]
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [edi]
inc edi
test cl, cl
jne 0x409b30
mov byte [edx], 0
movzx ecx, byte [esp + 0x44]
test cl, cl
je 0x409b5b
lea edi, [esp + 0x45]
nop
nop
nop
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [edi]
inc edi
test cl, cl
jne 0x409b50
mov byte [edx], 0
sub edx, ebx
add dword [esi + 0x80], edx
add esp, 0x84
pop esi
pop edi
pop ebx
pop ebp
ret 0x10