Function at 0x49341c
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x18
push 0
push 0
dec ecx
jne 0x493424
push ebx
push esi
push edi
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x12638f3
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 5], 0
mov eax, dword [ebp - 4]
call fcn.004047ac
cmp dword [0x1346b08], 0x7530
jle 0x49346c
cmp dword [0x1346b08], 0xcf08
jge 0x49346c
cmp byte [0x1346a76], 0
jne 0x493470
xor eax, eax
jmp 0x493472
mov al, 1
mov byte [ebp - 0x2d], al
cmp byte [ebp - 0x2d], 0
jne 0x493491
cmp dword [0x1346b08], 0xeea1
sete al
and al, byte [0x1346a76]
mov byte [ebp - 0x2d], al
mov ebx, 0x13880
mov eax, ebx
call fcn.00408c90
mov dword [ebp - 0xc], eax
mov edx, ebx
mov eax, dword [ebp - 0xc]
call fcn.004079d4
xor edx, edx
push ebp
push 0x126385c
push dword fs:[edx]
mov dword fs:[edx], esp
push ebx
mov eax, dword [ebp - 0xc]
push eax
push 0
push 0
push 0x567aacca
mov eax, dword [0x134450c]
mov eax, dword [eax]
call eax
mov byte [ebp - 5], al
cmp byte [ebp - 5], 0
je 0x493852
mov dl, 1
mov eax, dword [0x11e8184]
call fcn.00403900
mov dword [ebp - 0x24], eax
mov dl, 1
mov eax, dword [0x11e8184]
call fcn.00403900
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
cmp dword [eax + 0x80], 0
jne 0x493528
mov eax, dword [ebp - 0x10]
cmp dword [eax + 0x84], 0
jne 0x493528
mov eax, dword [ebp - 0x10]
cmp dword [eax + 0x88], 0
je 0x4937c0
mov eax, dword [ebp - 0x10]
cmp dword [eax + 0x88], 0x50
jbe 0x4937b4
mov eax, dword [ebp - 0x10]
cmp dword [eax + 0x80], 0
jbe 0x4937b4
lea eax, [ebp - 0x84]
mov edx, dword [ebp - 0x10]
mov ecx, 0x80
call fcn.00404a1c
mov eax, dword [ebp - 0x84]
lea edx, [ebp - 0x18]
call fcn.00408f00
lea eax, [ebp - 0x14]
push eax
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x9c], eax
mov byte [ebp - 0x98], 0xb
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x80]
mov dword [ebp - 0x94], eax
mov byte [ebp - 0x90], 0
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x84]
shr eax, 0xa
mov dword [ebp - 0x8c], eax
mov byte [ebp - 0x88], 0
lea edx, [ebp - 0x9c]
mov ecx, 2
mov eax, 0x126390c
call fcn.0040a064
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x28]
mov ecx, dword [eax]
call dword [ecx + 0x38]
cmp byte [ebp - 0x2d], 0
je 0x4937b4
mov eax, dword [ebp - 0x10]
cmp dword [eax + 0x84], 0
jbe 0x4937b4
mov eax, dword [ebp - 0x10]
cmp dword [eax + 0x84], 0x186a00
jae 0x4937b4
mov edx, dword [ebp - 0x18]
mov eax, 0x1263924
call fcn.00404dcc
test eax, eax
jle 0x4937b4
mov eax, dword [ebp - 0x10]
cmp dword [eax + 0x80], 0x58760bd9
jbe 0x4937b4
mov byte [ebp - 0x2d], 0
xor edx, edx
push ebp
push 0x12637aa
push dword fs:[edx]
mov dword fs:[edx], esp
lea eax, [ebp - 0x80]
mov edx, 0x50
call fcn.004079d4
mov edx, dword [ebp - 0x10]
lea eax, [ebp - 0x70]
mov ecx, 0x40
call fcn.004079c4
mov eax, dword [ebp - 0x10]
mov esi, dword [eax + 0x84]
push esi
lea eax, [ebp - 0x2c]
mov ecx, 1
mov edx, dword [0x12633f8]
call fcn.00405c44
add esp, 4
push esi
mov eax, dword [ebp - 0x2c]
push eax
push 0x50
lea eax, [ebp - 0x80]
push eax
push 0xf3feadce
mov eax, dword [0x134450c]
mov eax, dword [eax]
call eax
test al, al
je 0x493788
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x80]
call fcn.004d4820
add esp, 0xfffffff8
fstp qword [esp]
wait
lea edx, [ebp - 0x1c]
mov eax, 0x1263934
call fcn.0040be28
mov ebx, esi
dec ebx
test ebx, ebx
jb 0x4936d3
inc ebx
xor eax, eax
mov edx, dword [ebp - 0x2c]
xor byte [edx + eax], 0xc8
inc eax
dec ebx
jne 0x4936c8
mov dl, 1
mov eax, dword [0x11e8498]
call fcn.00403900
mov ebx, eax
mov edx, dword [ebp - 0x2c]
mov ecx, esi
mov eax, ebx
call fcn.0041cc90
push 0
push 0
mov eax, ebx
call fcn.0041ca4c
lea edx, [ebp - 0x20]
mov eax, ebx
call fcn.0047faf8
test al, al
je 0x493781
push dword [ebp - 0x20]
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x80]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0xa8]
call fcn.00409254
push dword [ebp - 0xa8]
push dword [ebp - 0x20]
lea eax, [ebp - 0xa4]
mov edx, 3
call fcn.00404b48
mov eax, dword [ebp - 0xa4]
lea edx, [ebp - 0xa0]
call fcn.0047fa6c
mov edx, dword [ebp - 0xa0]
lea eax, [ebp - 0x20]
call fcn.00404844
lea eax, [ebp - 0xac]
push eax
lea eax, [ebp - 0xb0]
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x1c]
call fcn.00404ad4
mov ecx, dword [ebp - 0xb0]
mov edx, dword [ebp - 0x20]
mov eax, ebx
call fcn.004c1618
mov eax, ebx
call fcn.00403930
push 0
lea eax, [ebp - 0x2c]
mov ecx, 1
mov edx, dword [0x12633f8]
call fcn.00405c44
add esp, 4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4937b4
add dword [ebp - 0x10], 0xa0
jmp 0x493500
cmp byte [0x1346a76], 0
je 0x4937eb
lea edx, [ebp - 0xb4]
mov eax, 0x1263948
call fcn.004cc154
mov edx, dword [ebp - 0xb4]
mov eax, dword [ebp - 0x28]
mov ecx, dword [eax]
call dword [ecx + 0x54]
mov ebx, eax
jmp 0x4937f8
mov eax, dword [ebp - 0x24]
mov edx, dword [eax]
call dword [edx + 0x14]
mov ebx, eax
sub ebx, 7
cmp ebx, 1
jge 0x49381b
mov eax, dword [ebp - 0x24]
mov edx, dword [eax]
call dword [edx + 0x14]
cmp eax, 7
jle 0x493819
mov eax, dword [ebp - 0x24]
mov edx, dword [eax]
call dword [edx + 0x14]
mov ebx, eax
sub ebx, 7
jmp 0x49381b
xor ebx, ebx
mov esi, ebx
mov eax, dword [ebp - 0x24]
mov edx, dword [eax]
call dword [edx + 0x14]
mov ebx, eax
dec ebx
sub ebx, esi
jl 0x493852
inc ebx
lea ecx, [ebp - 0xb8]
mov edx, esi
mov eax, dword [ebp - 0x24]
mov edi, dword [eax]
call dword [edi + 0xc]
mov edx, dword [ebp - 0xb8]
mov eax, dword [ebp - 4]
call fcn.00404a90
mov eax, dword [ebp - 4]
inc esi
dec ebx
jne 0x49382d
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4938a7
mov eax, dword [ebp - 0xc]
call fcn.004027d4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x12638fa
lea eax, [ebp - 0xc0]
mov edx, 9
call fcn.004047d0
lea eax, [ebp - 0x84]
call fcn.004047ac
lea eax, [ebp - 0x2c]
mov edx, dword [0x12633f8]
call fcn.00405c50
lea eax, [ebp - 0x20]
mov edx, 4
call fcn.004047d0
ret