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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x40
mov edx, dword [esp + 0x5c]
mov esi, dword [esp + 0x58]
mov eax, dword [esp + 0x54]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov edi, dword [ecx + 0x80]
mov word [esp + 3], 0xefe9
mov byte [esp + 5], 0xe6
xor ebx, ebx
nop
mov eax, ebx
or al, 0xc4
xor al, byte [esp + ebx + 3]
add al, 0xe0
mov byte [esp + ebx + 3], al
mov eax, ebx
and eax, 1
xor ebx, 1
lea ebx, [ebx + eax*2]
cmp ebx, 3
jb 0x409200
mov dword [esp + 6], 0x7171774b
mov word [esp + 0xa], 0x6e77
xor ebx, ebx
nop
movzx eax, byte [esp + ebx + 6]
lea ebp, [ebx + 0x45690261]
lea ecx, [ebx + 0x61]
and ecx, eax
or ebp, eax
xor ebp, ecx
mov eax, ebp
and eax, 0x77
xor ebp, 0xf7
lea eax, [eax*2]
add eax, ebp
inc al
mov byte [esp + ebx + 6], al
mov eax, ebx
xor eax, 0xfffffffe
or ebx, 1
and eax, ebx
add ebx, eax
cmp ebx, 6
jb 0x409230
mov dword [esp + 0x17], 0x43782024
mov dword [esp + 0x1b], 0x4e5a4a43
mov dword [esp + 0x1f], 0x4d770f45
mov dword [esp + 0x23], 0x3b484646
mov dword [esp + 0x27], 0x33323e30
mov dword [esp + 0x2b], 0x266f0433
mov dword [esp + 0x2f], 0x793e303e
mov dword [esp + 0x33], 0x39332721
mov dword [esp + 0x37], 0x3d257a12
mov dword [esp + 0x3b], 0x72123b20
mov byte [esp + 0x3f], 0x51
mov ebx, 0xb1
mov ebp, 0x4e
nop
nop
movzx eax, byte [esp + ebx - 0x9a]
mov ecx, ebx
or ecx, eax
not eax
or eax, ebp
and eax, ecx
add al, 0x78
mov byte [esp + ebx - 0x9a], al
inc ebx
dec ebp
cmp ebx, 0xda
jne 0x4092d0
add dword [esp + 0xc], edi
mov word [esp], 0xa0b
mov byte [esp + 2], 0x68
mov edi, 0x512035d6
mov ecx, dword [esp + 0x10]
nop
nop
nop
movzx ebx, byte [esp + edi - 0x512035d6]
xor ebx, edi
mov eax, ebx
and eax, 0xf
xor eax, 0xa089080f
and ebx, 0x10024f0
sub ebx, eax
mov eax, ebx
and eax, 1
xor ebx, 1
lea eax, [ebx + eax*2]
add al, 0x5e
mov byte [esp + edi - 0x512035d6], al
inc edi
cmp edi, 0x512035d9
jne 0x409310
movzx ebx, byte [esp]
mov eax, dword [esp + 0xc]
mov edi, eax
test bl, bl
je 0x40936c
lea ebp, [esp + 1]
mov edi, eax
nop
nop
nop
mov byte [edi], bl
inc edi
movzx ebx, byte [ebp]
inc ebp
test bl, bl
jne 0x409360
mov byte [edi], 0
movzx ebx, byte [ecx + 0x60]
test bl, bl
je 0x40938c
lea ebp, [ecx + 0x61]
nop
nop
nop
nop
nop
nop
mov byte [edi], bl
inc edi
movzx ebx, byte [ebp]
inc ebp
test bl, bl
jne 0x409380
mov byte [edi], 0
movzx ebx, byte [esp + 0x17]
test bl, bl
je 0x4093ac
lea ebp, [esp + 0x18]
nop
nop
nop
nop
mov byte [edi], bl
inc edi
movzx ebx, byte [ebp]
inc ebp
test bl, bl
jne 0x4093a0
mov byte [edi], 0
movzx ebx, byte [esi]
test bl, bl
je 0x4093cb
inc esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], bl
inc edi
movzx ebx, byte [esi]
inc esi
test bl, bl
jne 0x4093c0
mov byte [edi], 0
movzx ebx, byte [esp + 6]
test bl, bl
je 0x4093eb
lea esi, [esp + 7]
nop
nop
nop
nop
nop
mov byte [edi], bl
inc edi
movzx ebx, byte [esi]
inc esi
test bl, bl
jne 0x4093e0
mov byte [edi], 0
movzx ebx, byte [edx]
test bl, bl
je 0x40940b
inc edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], bl
inc edi
movzx ebx, byte [edx]
inc edx
test bl, bl
jne 0x409400
mov byte [edi], 0
movzx edx, byte [esp + 3]
test dl, dl
je 0x40942b
lea esi, [esp + 4]
nop
nop
nop
nop
nop
mov byte [edi], dl
inc edi
movzx edx, byte [esi]
inc esi
test dl, dl
jne 0x409420
mov byte [edi], 0
sub edi, eax
add dword [ecx + 0x80], edi
add esp, 0x40
pop esi
pop edi
pop ebx
pop ebp
ret 0xc