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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x10c
cmp dword [ecx + 0x20], 0
je 0x4098f9
mov esi, ecx
lea eax, [ecx + 0x10]
push eax
call fcn.00405e30
add esp, 4
mov edx, dword [esi + 0x10]
mov eax, dword [esi + 0x58]
mov eax, dword [eax + 0x48]
mov dword [esp + 0xc], eax
movzx eax, byte [esi]
imul ecx, eax, 0xcd
shr ecx, 0xa
and ecx, 0xfffffffe
lea ecx, [ecx + ecx*4]
sub al, cl
movzx eax, al
movzx eax, byte [eax + 0x43fb88]
mov byte [esp + 6], al
mov byte [esp + 7], 0
mov dword [esp + 0x10], edx
lea eax, [edx + 0x400]
push eax
call fcn.00407fc0
add esp, 4
mov dword [esp], eax
mov dword [esp + 0x70], 0x34d159cf
mov word [esp + 0x74], 0xd049
xor eax, eax
nop
nop
nop
movzx ecx, word [esp + eax*2 + 0x70]
mov edi, eax
and edi, 2
mov edx, eax
or edx, 2
imul edx, edi
xor edi, 2
mov ebx, eax
and ebx, 1
neg ebx
and ebx, edi
mov edi, eax
xor edi, 0x5cba192f
add edi, ebx
add edi, edx
mov edx, edi
and edx, ecx
mov ebp, edx
and ebp, 2
mov ebx, edx
or edx, 2
imul edx, ebp
xor ebp, 2
and ebx, 0xfffffffd
imul ebx, ebp
sub edx, edi
add edx, ebx
mov edi, edx
xor edi, ecx
not edx
and edx, ecx
add edx, edx
sub edx, edi
add edx, 0x3688
mov word [esp + eax*2 + 0x70], dx
inc eax
cmp eax, 3
jne 0x409500
lea ebx, [esp + 0x70]
mov ecx, esi
push 0x446f64
push ebx
push dword [esp + 8]
call fcn.00408e40
mov dword [esp + 0x70], 0xa00e3f19
xor eax, eax
mov cl, 1
xor ebp, ebp
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, word [esp + eax*2 + 0x70]
lea edi, [eax + 0x3cec7b61]
and edi, edx
add edx, eax
add edx, 0x3cec7b61
add edi, edi
sub edx, edi
add edx, 0x24f8
mov word [esp + eax*2 + 0x70], dx
mov eax, 1
test cl, 1
mov ecx, 0
jne 0x409590
lea eax, [esp + 6]
mov ecx, esi
push eax
push ebx
push dword [esp + 8]
call fcn.00408e40
mov eax, dword [0x441010]
mov dword [esp + 8], eax
mov dword [esp + 0x70], 0xac7bd772
mov cl, 1
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, word [esp + ebp*2 + 0x70]
mov edi, ebp
or edi, 0xa1ae
and edi, edx
lea eax, [edx + ebp]
add eax, 0x90a9943d
add edi, edi
mov edx, eax
sub edx, edi
and eax, 1
xor edx, 1
lea eax, [edx + eax*2]
mov word [esp + ebp*2 + 0x70], ax
mov ebp, 1
xor edi, edi
test cl, 1
mov ecx, 0
jne 0x4095f0
mov ecx, esi
push dword [esp + 8]
push ebx
push dword [esp + 8]
call fcn.00408e40
mov dword [esp + 0x70], 0xbc36bd24
mov dword [esp + 0x74], 0x8f0f8506
mov dword [esp + 0x78], 0xbd0bb138
mov word [esp + 0x7c], 0x10ad
mov eax, edi
nop
nop
nop
lea ecx, [edi + 0x26cf]
xor cx, word [esp + edi*2 + 0x70]
add ecx, 0xffffc988
mov word [esp + edi*2 + 0x70], cx
mov ecx, edi
xor eax, 1
add eax, edi
and edi, 1
and ecx, 6
sub eax, ecx
add eax, edi
mov edi, eax
cmp eax, 7
jb 0x409660
mov dword [esp + 0x16], 0x746361
lea eax, [esp + 0x16]
mov ecx, esi
push ebx
push eax
push dword [esp + 8]
call fcn.00408e40
mov dword [esp + 0x70], 0xa2609e9d
mov word [esp + 0x74], 0x9fd
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, word [esp + eax*2 + 0x70]
lea edx, [eax + 0x5aadfee3]
xor edx, ecx
mov ecx, edx
and ecx, 1
xor edx, 1
lea ecx, [edx + ecx*2]
add ecx, 0xfa51a1cc
mov edx, ecx
xor edx, 0x98e5
and ecx, 0x671a
add ecx, ecx
sub ecx, edx
mov word [esp + eax*2 + 0x70], cx
inc eax
cmp eax, 3
jne 0x4096c0
mov ecx, esi
push dword [esp + 0x10]
push dword [esp + 0x10]
push ebx
push dword [esp + 0xc]
call fcn.004090a0
mov dword [esp + 0x16], 0x479747d4
mov dword [esp + 0x1a], 0x479e4797
mov dword [esp + 0x1e], 0x479247ae
mov dword [esp + 0x22], 0x47d34799
mov dword [esp + 0x26], 0x478947bb
mov dword [esp + 0x2a], 0x47a74791
mov dword [esp + 0x2e], 0x47e447c9
mov dword [esp + 0x32], 0x47934798
mov dword [esp + 0x36], 0x476c479b
mov dword [esp + 0x3a], 0x476a4760
mov dword [esp + 0x3e], 0x476e475a
mov dword [esp + 0x42], 0x47214769
mov dword [esp + 0x46], 0x476f4759
mov dword [esp + 0x4a], 0x476f4763
mov dword [esp + 0x4e], 0x4750472e
mov dword [esp + 0x52], 0x47624754
mov dword [esp + 0x56], 0x47234756
mov dword [esp + 0x5a], 0x47484709
mov dword [esp + 0x5e], 0x47794774
mov dword [esp + 0x62], 0x474a4773
mov dword [esp + 0x66], 0x4772474e
mov dword [esp + 0x6a], 0x472f4768
mov word [esp + 0x6e], 0x47e3
xor eax, eax
xor ecx, ecx
nop
nop
nop
nop
nop
nop
movzx edi, word [esp + ecx*2 + 0x16]
mov ebp, eax
and ebp, 0x5e
mov edx, ecx
xor edx, 0x45e0646f
add edx, ebp
mov ebp, edx
and ebp, edi
add edx, edi
add ebp, ebp
sub edx, ebp
add edx, 0xffffdc88
mov word [esp + ecx*2 + 0x16], dx
inc ecx
add eax, 2
cmp ecx, 0x2d
jne 0x4097d0
movzx eax, word [esp + 0x16]
test ax, ax
je 0x409831
lea ebx, [esp + 0x70]
lea ecx, [esp + 0x18]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ebx], ax
add ebx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x409820
mov word [ebx], 0
movzx ecx, byte [esi + 0x60]
test cl, cl
je 0x409861
lea eax, [esi + 0x61]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movsx ecx, cl
mov word [ebx], cx
add ebx, 2
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x409850
mov dword [ebx], 0xa000d
mov word [ebx + 4], 0
mov eax, dword [esi + 0x80]
mov dword [esp + 0x16], 0x93e4932b
mov dword [esp + 0x1a], 0x93ee93f6
mov word [esp + 0x1e], 0x9348
xor ecx, ecx
nop
nop
nop
nop
lea edx, [ecx + 0x1064]
xor dx, word [esp + ecx*2 + 0x16]
add edx, 0x7ce0
mov word [esp + ecx*2 + 0x16], dx
inc ecx
cmp ecx, 5
jne 0x409890
lea ecx, [esp + 0x70]
push 0x493e0
push eax
mov edi, dword [esp + 8]
push edi
push 0
push 0
push ecx
lea eax, [esp + 0x2e]
push eax
call fcn.0040bd10
add esp, 0x1c
mov ebx, eax
push edi
call fcn.00407fd0
add esp, 4
mov eax, dword [esi + 4]
mov ecx, dword [esi + 0x80]
mov edx, ecx
and edx, eax
xor ecx, eax
lea eax, [ecx + edx*2]
mov dword [esi + 4], eax
mov dword [esi + 0x80], 0
jmp 0x4098fb
mov bl, 1
mov eax, ebx
add esp, 0x10c
pop esi
pop edi
pop ebx
pop ebp
ret