Function at 0x4099f0
Capabilities:
Contain obfuscated stackstrings
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x54
mov edx, dword [esp + 0x70]
mov esi, dword [esp + 0x6c]
mov dword [esp + 0x20], ecx
mov eax, dword [ecx + 0x80]
mov dword [esp + 0x1c], eax
mov word [esp + 8], 0x6f6d
mov byte [esp + 0xa], 0x76
mov dword [esp + 0xb], 0
xor ebx, ebx
xor ebp, ebp
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + ebp + 8]
mov ecx, ebx
and ecx, 0xc
mov edi, ebp
xor edi, 0xd1f22f96
add edi, ecx
mov ecx, edi
and ecx, eax
add ecx, ecx
add edi, eax
mov eax, ecx
xor eax, edi
not ecx
and ecx, edi
add ecx, ecx
sub ecx, eax
add cl, 0x12
mov byte [esp + ebp + 8], cl
inc ebp
add ebx, 2
cmp ebp, 7
jne 0x409a30
mov dword [esp + 0x10], 0x160c1026
mov dword [esp + 0x14], 0x30a
mov byte [esp + 0x18], 0
xor ebx, ebx
mov ebp, 0xae8fb7e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + ebx + 0x10]
lea eax, [edi + edi]
not eax
add eax, edi
mov ecx, eax
xor ecx, 0xa5
or eax, 0x5a
and eax, ecx
and edi, 0xffffffa5
or edi, eax
mov eax, ebx
xor eax, 0x40
add eax, ebp
and eax, 0x5a
lea ecx, [ebx + 0x7a8b8241]
and ecx, 5
or ecx, eax
xor ecx, edi
add cl, 0xbb
mov byte [esp + ebx + 0x10], cl
add ebp, 0xfffffffe
inc ebx
cmp ebx, 9
jne 0x409a90
mov dword [esp + 0x24], 0x6439fffd
mov dword [esp + 0x28], 0x615f6966
mov dword [esp + 0x2c], 0x5632246c
mov dword [esp + 0x30], 0x64696d63
mov dword [esp + 0x34], 0x744f6551
mov dword [esp + 0x38], 0x49022376
mov dword [esp + 0x3c], 0x3a7b7f73
mov dword [esp + 0x40], 0x4a764c40
mov dword [esp + 0x44], 0x7644092f
mov dword [esp + 0x48], 0x3d177841
mov byte [esp + 0x4c], 0xd0
mov dword [esp + 0x4d], 0
mov edi, 0xe95149fe
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + edi + 0x16aeb626]
xor eax, edi
add eax, 0x71698e09
mov ecx, eax
and ecx, 0x12
xor eax, 0x12
lea eax, [eax + ecx*2]
add al, 0xef
mov byte [esp + edi + 0x16aeb626], al
inc edi
cmp edi, 0xe9514a2b
jne 0x409b40
mov ebp, dword [esp + 0x68]
add ebp, dword [esp + 0x1c]
mov word [esp], 0x7475
mov byte [esp + 2], 0x1e
mov dword [esp + 3], 0
xor ecx, ecx
xor edi, edi
nop
nop
nop
nop
nop
mov eax, ecx
and eax, 4
mov ebx, edi
xor ebx, 0xba
add ebx, eax
xor bl, byte [esp + edi]
add bl, 0x5e
mov byte [esp + edi], bl
inc edi
add ecx, 2
cmp edi, 7
jne 0x409b90
movzx ecx, byte [esp]
mov edi, ebp
test cl, cl
je 0x409bdb
lea ebx, [esp + 1]
mov edi, ebp
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [ebx]
inc ebx
test cl, cl
jne 0x409bd0
mov byte [edi], 0
mov eax, dword [esp + 0x20]
movzx ecx, byte [eax + 0x60]
test cl, cl
je 0x409bfb
lea ebx, [eax + 0x61]
nop
nop
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [ebx]
inc ebx
test cl, cl
jne 0x409bf0
mov byte [edi], 0
movzx ecx, byte [esp + 0x24]
test cl, cl
je 0x409c1b
lea ebx, [esp + 0x25]
nop
nop
nop
nop
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [ebx]
inc ebx
test cl, cl
jne 0x409c10
mov byte [edi], 0
movzx ecx, byte [esi]
test cl, cl
je 0x409c3b
inc esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [esi]
inc esi
test cl, cl
jne 0x409c30
mov byte [edi], 0
movzx ecx, byte [esp + 0x10]
test cl, cl
je 0x409c5b
lea esi, [esp + 0x11]
nop
nop
nop
nop
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [esi]
inc esi
test cl, cl
jne 0x409c50
mov byte [edi], 0
movzx ecx, byte [edx]
test cl, cl
je 0x409c7b
inc edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x409c70
mov byte [edi], 0
movzx ecx, byte [esp + 8]
test cl, cl
je 0x409c9b
lea edx, [esp + 9]
nop
nop
nop
nop
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x409c90
mov byte [edi], 0
sub edi, ebp
add dword [eax + 0x80], edi
add esp, 0x54
pop esi
pop edi
pop ebx
pop ebp
ret 0xc