Function at 0x48a572
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0
push 0
sub esp, 0x44
jmp 0x48a6a9
mov dword [ebp - 0x44], 0
mov eax, dword [ebp + 8]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp + 0x18]
xor al, 1
mov dword [ebp - 0x48], eax
mov eax, dword [0x53ee34]
mov dword [ebp - 0x30], eax
mov eax, dword [0x53ee54]
cmp eax, 0
je 0x48a6e8
push dword [ebp + 8]
push dword [ebp + 8]
push dword [ebp + 8]
push dword [ebp + 0x10]
push 0x100
call fcn.00487b62
mov eax, dword [ebp + 8]
mov eax, dword [eax]
and eax, 0xff
cmp eax, 6
je 0x48a7e8
cmp eax, 0x10
je 0x48a839
cmp eax, 0x1b
je 0x48a91e
cmp eax, 0x12
je 0x48aa23
cmp eax, 0x11
je 0x48aa7f
cmp eax, 0xf
je 0x48aae4
cmp eax, 0x19
je 0x48ac7e
cmp eax, 0x1c
je 0x48acef
cmp eax, 0x1a
je 0x48ad53
cmp eax, 0x17
je 0x48adc4
cmp eax, 0x18
je 0x48adf3
cmp eax, 0x1d
je 0x48adf3
cmp eax, 0x15
je 0x48adf3
cmp eax, 0x16
je 0x48adf3
cmp eax, 0x14
je 0x48aea1
mov eax, dword [ebp + 0x18]
cmp eax, 0
je 0x48a7ab
push dword [ebp + 8]
call fcn.0048773a
jmp 0x48a7b3
push dword [ebp + 8]
call fcn.004876a4
mov dword [ebp - 0x24], eax
mov eax, dword [0x53ee54]
cmp eax, 0
je 0x48a7d8
push dword [ebp - 0x24]
push dword [ebp + 8]
push dword [ebp + 8]
push dword [ebp + 0x10]
push 0x200
call fcn.00487b62
mov eax, dword [ebp + 8]
add eax, 0x10
mov dword [ebp + 8], eax
jmp 0x48af8d
push dword [0x538814]
call fcn.004866bc
xor eax, eax
inc eax
push eax
push dword [ebp + 8]
call fcn.0048b11b
mov eax, dword [ebp + 0x18]
cmp eax, 0
je 0x48a810
call fcn.00486a47
jmp 0x48a815
call fcn.00486a7e
mov eax, dword [ebp + 8]
add eax, 0x10
mov dword [ebp + 8], eax
mov eax, dword [0x53ee54]
cmp eax, 0
je 0x48a834
mov eax, dword [0x53ee2c]
mov dword [ebp - 0x24], eax
jmp 0x48af8d
push dword [ebp + 8]
call fcn.004866bc
push dword [ebp + 8]
call fcn.0044c477
mov eax, dword [0x53ee54]
cmp eax, 0
je 0x48a86b
push dword [ebp + 8]
push dword [ebp + 8]
push dword [ebp + 8]
push dword [ebp + 0x10]
push 0x200
call fcn.00487b62
mov eax, dword [ebp + 8]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp + 8]
add eax, 0x10
mov dword [ebp + 8], eax
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
cmp eax, edx
jb 0x48a8b9
mov eax, dword [ebp + 8]
sub eax, 0x10
push eax
push 3
push dword [0x5485e4]
call fcn.0045293d
push eax
push 3
push dword [0x5485d4]
call fcn.0045293d
push eax
push 0xc
lea esi, [esp + 4]
push esi
push 3
call fcn.0042c152
xor eax, eax
push eax
xor eax, eax
inc eax
push eax
xor eax, eax
push eax
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0048a572
mov dword [ebp + 8], eax
mov eax, dword [0x53ee54]
cmp eax, 0
je 0x48a8fe
call fcn.004877b4
mov dword [ebp - 0x24], eax
push dword [ebp - 0x24]
push dword [ebp - 0x28]
push dword [ebp + 8]
push dword [ebp + 0x10]
push 0x400
call fcn.00487b62
call fcn.0044c643
mov eax, dword [ebp + 0x18]
cmp eax, 0
je 0x48a914
call fcn.00486a47
jmp 0x48a919
call fcn.00486a7e
jmp 0x48af8d
mov eax, dword [ebp + 8]
mov dword [ebp - 0x24], eax
mov eax, dword [0x53ee54]
cmp eax, 0
je 0x48a946
push dword [ebp + 8]
push dword [ebp + 8]
push dword [ebp + 8]
push dword [ebp + 0x10]
push 0x200
call fcn.00487b62
mov eax, dword [ebp + 8]
add eax, 0x10
mov dword [ebp + 8], eax
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
cmp eax, edx
jb 0x48a988
push dword [ebp - 0x24]
push 3
push dword [0x5485e4]
call fcn.0045293d
push eax
push 3
push dword [0x5485d4]
call fcn.0045293d
push eax
push 0xc
lea esi, [esp + 4]
push esi
push 3
call fcn.0042c152
push dword [0x5388fc]
call fcn.004866bc
xor eax, eax
push eax
xor eax, eax
inc eax
push eax
xor eax, eax
push eax
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0048a572
mov dword [ebp + 8], eax
mov eax, dword [0x53ee54]
cmp eax, 0
je 0x48a9d3
call fcn.004877b4
push eax
push dword [ebp - 0x24]
push dword [ebp + 8]
push dword [ebp + 0x10]
push 0x400
call fcn.00487b62
xor eax, eax
push eax
push dword [ebp + 0x18]
xor eax, eax
push eax
xor eax, eax
inc eax
push eax
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
push dword [ebp - 0x24]
call fcn.00488c50
mov dword [ebp + 8], eax
mov eax, dword [ebp + 0x18]
cmp eax, 0
je 0x48aa05
call fcn.00486a47
jmp 0x48aa0a
call fcn.00486a7e
mov eax, dword [0x53ee54]
cmp eax, 0
je 0x48aa1e
mov eax, dword [0x53ee2c]
mov dword [ebp - 0x24], eax
jmp 0x48af8d
push dword [ebp + 8]
call fcn.0044bca0
mov dword [ebp - 0x24], eax
mov eax, dword [ebp + 0x18]
cmp eax, 0
je 0x48aa42
push dword [ebp - 0x24]
call fcn.0048773a
jmp 0x48aa4a
push dword [ebp - 0x24]
call fcn.004876a4
mov dword [ebp - 0x24], eax
mov eax, dword [0x53ee54]
cmp eax, 0
je 0x48aa6f
push dword [ebp - 0x24]
push dword [ebp + 8]
push dword [ebp + 8]
push dword [ebp + 0x10]
push 0x200
call fcn.00487b62
mov eax, dword [ebp + 8]
add eax, 0x10
mov dword [ebp + 8], eax
jmp 0x48af8d
mov eax, dword [ebp + 0x18]
cmp eax, 0
je 0x48aa96
push dword [ebp + 8]
call fcn.0044c477
mov dword [ebp - 0x34], eax
jmp 0x48aaa1
push dword [ebp + 8]
call fcn.004876a4
mov dword [ebp - 0x34], eax
mov eax, 0xf
xchg edx, eax
mov eax, dword [ebp - 0x34]
mov dword [eax], edx
mov eax, dword [0x53ee54]
cmp eax, 0
je 0x48aad4
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x24], eax
push dword [ebp - 0x24]
push dword [ebp + 8]
push dword [ebp + 8]
push dword [ebp + 0x10]
push 0x200
call fcn.00487b62
mov eax, dword [ebp + 8]
add eax, 0x10
mov dword [ebp + 8], eax
jmp 0x48af8d
push dword [ebp + 8]
call fcn.0044bca0
mov dword [ebp - 0x24], eax
mov eax, dword [ebp + 8]
add eax, 0x10
mov dword [ebp + 8], eax
mov eax, dword [ebp - 0x24]
mov eax, dword [eax]
and eax, 0xff
cmp eax, 2
je 0x48aba3
cmp eax, 0x11
je 0x48abdb
cmp eax, 0x18
je 0x48ac0d
cmp eax, 0x1d
je 0x48ac0d
cmp eax, 0x15
je 0x48ac0d
cmp eax, 0x16
je 0x48ac0d
cmp eax, 0x17
je 0x48ac46
mov eax, dword [0x53ee54]
cmp eax, 0
je 0x48ab7f
push dword [ebp - 0x24]
mov eax, dword [ebp + 8]
sub eax, 0x10
push eax
mov eax, dword [ebp + 8]
sub eax, 0x10
push eax
push dword [ebp + 0x10]
push 0x200
call fcn.00487b62
mov eax, dword [ebp + 0x18]
cmp eax, 0
je 0x48ab93
push dword [ebp - 0x24]
call fcn.0048773a
jmp 0x48ab9b
push dword [ebp - 0x24]
call fcn.0048768b
mov dword [ebp - 0x24], eax
jmp 0x48ac79
mov eax, dword [ebp + 8]
sub eax, 0x10
push eax
push 2
push dword [0x5485e4]
call fcn.0045293d
push eax
push 3
push dword [0x5485d4]
call fcn.0045293d
push eax
push 0xc
lea esi, [esp + 4]
push esi
push 3
call fcn.0042c152
jmp 0x48ac79
mov eax, dword [0x53ee54]
cmp eax, 0
je 0x48ac03
push dword [ebp - 0x24]
mov eax, dword [ebp + 8]
sub eax, 0x10
push eax
push dword [ebp + 8]
push dword [ebp + 0x10]
push 0x200
call fcn.00487b62
push dword [ebp - 0x24]
call fcn.0044c477
jmp 0x48ac79
xor eax, eax
push eax
push 0
push dword [ebp - 0x24]
push 0
push 0
push dword [ebp + 0x18]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
push dword [ebp - 0x24]
call fcn.0048a266
mov dword [ebp + 8], eax
mov eax, dword [0x53ee54]
cmp eax, 0
je 0x48ac44
mov eax, dword [0x53ee2c]
mov dword [ebp - 0x24], eax
jmp 0x48ac79
mov eax, dword [ebp + 8]
sub eax, 0x10
push eax
push 0xf
push dword [0x5485e4]
call fcn.0045293d
push eax
push 3
push dword [0x5485d4]
call fcn.0045293d
push eax
push 0xc
lea esi, [esp + 4]
push esi
push 3
call fcn.0042c152
jmp 0x48af8d
mov eax, dword [ebp + 8]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp + 8]
add eax, 0x10
mov dword [ebp + 8], eax
xor eax, eax
push eax
push dword [ebp + 0x18]
xor eax, eax
push eax
xor eax, eax
push eax
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
push dword [ebp - 0x24]
call fcn.00488c50
mov dword [ebp + 8], eax
mov eax, dword [0x53ee54]
cmp eax, 0
je 0x48acea
mov eax, dword [ebp + 0x18]
cmp eax, 0
je 0x48accc
call fcn.004877b4
jmp 0x48acd1
mov eax, dword [0x53ee2c]
mov dword [ebp - 0x24], eax
push dword [ebp - 0x24]
push dword [ebp + 8]
push dword [ebp + 8]
push dword [ebp + 0x10]
push 0x200
call fcn.00487b62
jmp 0x48af8d
mov eax, dword [ebp + 8]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp + 8]
add eax, 0x10
mov dword [ebp + 8], eax
xor eax, eax
push eax
push dword [ebp + 0x18]
xor eax, eax
inc eax
push eax
xor eax, eax
push eax
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
push dword [ebp - 0x24]
call fcn.00488c50
mov dword [ebp + 8], eax
mov eax, dword [0x53ee54]
cmp eax, 0
je 0x48ad4e
push dword [0x53ee2c]
push dword [ebp - 0x24]
push dword [ebp - 0x24]
push dword [ebp + 0x10]
push 0x200
call fcn.00487b62
mov eax, dword [0x53ee2c]
mov dword [ebp - 0x24], eax
jmp 0x48af8d
mov eax, dword [ebp + 0x18]
cmp eax, 0
je 0x48ad67
push dword [ebp + 8]
call fcn.0048773a
jmp 0x48ad6f
push dword [ebp + 8]
call fcn.004876a4
mov dword [ebp - 0x24], eax
mov eax, 0x19
xchg edx, eax
mov eax, dword [ebp - 0x24]
mov dword [eax], edx
mov eax, 0
xchg edx, eax
mov eax, dword [ebp - 0x24]
mov dword [eax + 0xc], edx
mov eax, dword [0x53ee54]
cmp eax, 0
je 0x48adb4
push dword [ebp - 0x24]
mov eax, dword [ebp + 8]
sub eax, 0x10
push eax
push dword [ebp + 8]
push dword [ebp + 0x10]
push 0x200
call fcn.00487b62
mov eax, dword [ebp + 8]
add eax, 0x10
mov dword [ebp + 8], eax
jmp 0x48af8d
push 0xb
push dword [0x5485fc]
call fcn.0045293d
push eax
push 9
push dword [0x5485d4]
call fcn.0045293d
push eax
push 8
lea esi, [esp + 4]
push esi
push 2
call fcn.0042c152
jmp 0x48af8d
mov eax, dword [ebp + 0x1c]
cmp eax, 0
je 0x48ae4b
mov eax, dword [ebp + 0x18]
cmp eax, 0
je 0x48ae11
push dword [ebp + 8]
call fcn.0048773a
jmp 0x48ae19
push dword [ebp + 8]
call fcn.004876a4
mov dword [ebp - 0x24], eax
mov eax, dword [0x53ee54]
cmp eax, 0
je 0x48ae3e
push dword [ebp - 0x24]
push dword [ebp + 8]
push dword [ebp + 8]
push dword [ebp + 0x10]
push 0x200
call fcn.00487b62
mov eax, dword [ebp + 8]
add eax, 0x10
mov dword [ebp + 8], eax
jmp 0x48ae9c
mov eax, dword [ebp + 8]
add eax, 0x10
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp + 0xc]
cmp eax, edx
jb 0x48ae66
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x24], eax
xor eax, eax
push eax
push 0
push 0
push 0
push 0
push dword [ebp + 0x18]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp - 0x24]
push dword [ebp + 8]
call fcn.0048a266
mov dword [ebp + 8], eax
mov eax, dword [0x53ee54]
cmp eax, 0
je 0x48ae9c
mov eax, dword [0x53ee2c]
mov dword [ebp - 0x24], eax
jmp 0x48af8d
mov eax, dword [ebp + 8]
add eax, 0x10
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp + 0xc]
cmp eax, edx
jae 0x48aec9
mov eax, dword [ebp - 0x24]
mov eax, dword [eax]
and eax, 0xff
cmp eax, 5
jne 0x48aec9
jmp 0x48aecd
xor eax, eax
jmp 0x48aed0
xor eax, eax
inc eax
cmp eax, 0
je 0x48af41
mov eax, dword [ebp + 8]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x34]
mov eax, dword [eax + 8]
push eax
call fcn.0044b2fa
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x40]
mov edx, dword [0x5387fc]
cmp eax, edx
je 0x48af0d
mov eax, dword [ebp - 0x40]
mov edx, dword [0x538800]
cmp eax, edx
je 0x48af0d
xor eax, eax
jmp 0x48af10
xor eax, eax
inc eax
cmp eax, 0
je 0x48af41
push 0xe
push dword [0x5485fc]
call fcn.0045293d
push eax
push 9
push dword [0x5485d4]
call fcn.0045293d
push eax
push 8
lea esi, [esp + 4]
push esi
push 2
call fcn.0042c152
mov eax, dword [ebp + 0x18]
cmp eax, 0
je 0x48af55
push dword [ebp + 8]
call fcn.0048773a
jmp 0x48af5d
push dword [ebp + 8]
call fcn.004876a4
mov dword [ebp - 0x24], eax
mov eax, dword [0x53ee54]
cmp eax, 0
je 0x48af82
push dword [ebp - 0x24]
push dword [ebp + 8]
push dword [ebp + 8]
push dword [ebp + 0x10]
push 0x200
call fcn.00487b62
mov eax, dword [ebp + 8]
add eax, 0x10
mov dword [ebp + 8], eax
mov eax, dword [ebp + 0x14]
xor al, 1
cmp eax, 0
je 0x48afaa
call fcn.0048a581
mov eax, dword [ebp - 0x44]
xor al, 1
cmp eax, 0
je 0x48af99
mov eax, dword [0x53ee54]
cmp eax, 0
je 0x48afc2
mov eax, dword [ebp - 0x48]
cmp eax, 0
je 0x48afc2
jmp 0x48afc6
xor eax, eax
jmp 0x48afc9
xor eax, eax
inc eax
cmp eax, 0
je 0x48afe6
push dword [ebp - 0x24]
push dword [ebp - 0x2c]
push dword [ebp + 8]
push dword [ebp + 0x10]
push 0x8000
call fcn.00487b62
mov eax, dword [ebp + 8]
leave
ret 0x18