Function at 0x48a52b
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0
push 0
sub esp, 0x44
jmp 0x48a662
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 [0x53dcc4]
mov dword [ebp - 0x30], eax
mov eax, dword [0x53dce4]
cmp eax, 0
je 0x48a6a1
push dword [ebp + 8]
push dword [ebp + 8]
push dword [ebp + 8]
push dword [ebp + 0x10]
push 0x100
call fcn.00487b1b
mov eax, dword [ebp + 8]
mov eax, dword [eax]
and eax, 0xff
cmp eax, 6
je 0x48a7a1
cmp eax, 0x10
je 0x48a7f2
cmp eax, 0x1b
je 0x48a8d7
cmp eax, 0x12
je 0x48a9dc
cmp eax, 0x11
je 0x48aa38
cmp eax, 0xf
je 0x48aa9d
cmp eax, 0x19
je 0x48ac37
cmp eax, 0x1c
je 0x48aca8
cmp eax, 0x1a
je 0x48ad0c
cmp eax, 0x17
je 0x48ad7d
cmp eax, 0x18
je 0x48adac
cmp eax, 0x1d
je 0x48adac
cmp eax, 0x15
je 0x48adac
cmp eax, 0x16
je 0x48adac
cmp eax, 0x14
je 0x48ae5a
mov eax, dword [ebp + 0x18]
cmp eax, 0
je 0x48a764
push dword [ebp + 8]
call fcn.004876f3
jmp 0x48a76c
push dword [ebp + 8]
call fcn.0048765d
mov dword [ebp - 0x24], eax
mov eax, dword [0x53dce4]
cmp eax, 0
je 0x48a791
push dword [ebp - 0x24]
push dword [ebp + 8]
push dword [ebp + 8]
push dword [ebp + 0x10]
push 0x200
call fcn.00487b1b
mov eax, dword [ebp + 8]
add eax, 0x10
mov dword [ebp + 8], eax
jmp 0x48af46
push dword [0x5376fc]
call fcn.00486675
xor eax, eax
inc eax
push eax
push dword [ebp + 8]
call fcn.0048b0d4
mov eax, dword [ebp + 0x18]
cmp eax, 0
je 0x48a7c9
call fcn.00486a00
jmp 0x48a7ce
call fcn.00486a37
mov eax, dword [ebp + 8]
add eax, 0x10
mov dword [ebp + 8], eax
mov eax, dword [0x53dce4]
cmp eax, 0
je 0x48a7ed
mov eax, dword [0x53dcbc]
mov dword [ebp - 0x24], eax
jmp 0x48af46
push dword [ebp + 8]
call fcn.00486675
push dword [ebp + 8]
call fcn.0044c3f3
mov eax, dword [0x53dce4]
cmp eax, 0
je 0x48a824
push dword [ebp + 8]
push dword [ebp + 8]
push dword [ebp + 8]
push dword [ebp + 0x10]
push 0x200
call fcn.00487b1b
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 0x48a872
mov eax, dword [ebp + 8]
sub eax, 0x10
push eax
push 3
push dword [0x547454]
call fcn.00452889
push eax
push 3
push dword [0x547444]
call fcn.00452889
push eax
push 0xc
lea esi, [esp + 4]
push esi
push 3
call fcn.0042c0ce
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.0048a52b
mov dword [ebp + 8], eax
mov eax, dword [0x53dce4]
cmp eax, 0
je 0x48a8b7
call fcn.0048776d
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.00487b1b
call fcn.0044c5bf
mov eax, dword [ebp + 0x18]
cmp eax, 0
je 0x48a8cd
call fcn.00486a00
jmp 0x48a8d2
call fcn.00486a37
jmp 0x48af46
mov eax, dword [ebp + 8]
mov dword [ebp - 0x24], eax
mov eax, dword [0x53dce4]
cmp eax, 0
je 0x48a8ff
push dword [ebp + 8]
push dword [ebp + 8]
push dword [ebp + 8]
push dword [ebp + 0x10]
push 0x200
call fcn.00487b1b
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 0x48a941
push dword [ebp - 0x24]
push 3
push dword [0x547454]
call fcn.00452889
push eax
push 3
push dword [0x547444]
call fcn.00452889
push eax
push 0xc
lea esi, [esp + 4]
push esi
push 3
call fcn.0042c0ce
push dword [0x5377e4]
call fcn.00486675
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.0048a52b
mov dword [ebp + 8], eax
mov eax, dword [0x53dce4]
cmp eax, 0
je 0x48a98c
call fcn.0048776d
push eax
push dword [ebp - 0x24]
push dword [ebp + 8]
push dword [ebp + 0x10]
push 0x400
call fcn.00487b1b
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.00488c09
mov dword [ebp + 8], eax
mov eax, dword [ebp + 0x18]
cmp eax, 0
je 0x48a9be
call fcn.00486a00
jmp 0x48a9c3
call fcn.00486a37
mov eax, dword [0x53dce4]
cmp eax, 0
je 0x48a9d7
mov eax, dword [0x53dcbc]
mov dword [ebp - 0x24], eax
jmp 0x48af46
push dword [ebp + 8]
call fcn.0044bc1c
mov dword [ebp - 0x24], eax
mov eax, dword [ebp + 0x18]
cmp eax, 0
je 0x48a9fb
push dword [ebp - 0x24]
call fcn.004876f3
jmp 0x48aa03
push dword [ebp - 0x24]
call fcn.0048765d
mov dword [ebp - 0x24], eax
mov eax, dword [0x53dce4]
cmp eax, 0
je 0x48aa28
push dword [ebp - 0x24]
push dword [ebp + 8]
push dword [ebp + 8]
push dword [ebp + 0x10]
push 0x200
call fcn.00487b1b
mov eax, dword [ebp + 8]
add eax, 0x10
mov dword [ebp + 8], eax
jmp 0x48af46
mov eax, dword [ebp + 0x18]
cmp eax, 0
je 0x48aa4f
push dword [ebp + 8]
call fcn.0044c3f3
mov dword [ebp - 0x34], eax
jmp 0x48aa5a
push dword [ebp + 8]
call fcn.0048765d
mov dword [ebp - 0x34], eax
mov eax, 0xf
xchg edx, eax
mov eax, dword [ebp - 0x34]
mov dword [eax], edx
mov eax, dword [0x53dce4]
cmp eax, 0
je 0x48aa8d
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.00487b1b
mov eax, dword [ebp + 8]
add eax, 0x10
mov dword [ebp + 8], eax
jmp 0x48af46
push dword [ebp + 8]
call fcn.0044bc1c
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 0x48ab5c
cmp eax, 0x11
je 0x48ab94
cmp eax, 0x18
je 0x48abc6
cmp eax, 0x1d
je 0x48abc6
cmp eax, 0x15
je 0x48abc6
cmp eax, 0x16
je 0x48abc6
cmp eax, 0x17
je 0x48abff
mov eax, dword [0x53dce4]
cmp eax, 0
je 0x48ab38
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.00487b1b
mov eax, dword [ebp + 0x18]
cmp eax, 0
je 0x48ab4c
push dword [ebp - 0x24]
call fcn.004876f3
jmp 0x48ab54
push dword [ebp - 0x24]
call fcn.00487644
mov dword [ebp - 0x24], eax
jmp 0x48ac32
mov eax, dword [ebp + 8]
sub eax, 0x10
push eax
push 2
push dword [0x547454]
call fcn.00452889
push eax
push 3
push dword [0x547444]
call fcn.00452889
push eax
push 0xc
lea esi, [esp + 4]
push esi
push 3
call fcn.0042c0ce
jmp 0x48ac32
mov eax, dword [0x53dce4]
cmp eax, 0
je 0x48abbc
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.00487b1b
push dword [ebp - 0x24]
call fcn.0044c3f3
jmp 0x48ac32
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.0048a21f
mov dword [ebp + 8], eax
mov eax, dword [0x53dce4]
cmp eax, 0
je 0x48abfd
mov eax, dword [0x53dcbc]
mov dword [ebp - 0x24], eax
jmp 0x48ac32
mov eax, dword [ebp + 8]
sub eax, 0x10
push eax
push 0xf
push dword [0x547454]
call fcn.00452889
push eax
push 3
push dword [0x547444]
call fcn.00452889
push eax
push 0xc
lea esi, [esp + 4]
push esi
push 3
call fcn.0042c0ce
jmp 0x48af46
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.00488c09
mov dword [ebp + 8], eax
mov eax, dword [0x53dce4]
cmp eax, 0
je 0x48aca3
mov eax, dword [ebp + 0x18]
cmp eax, 0
je 0x48ac85
call fcn.0048776d
jmp 0x48ac8a
mov eax, dword [0x53dcbc]
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.00487b1b
jmp 0x48af46
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.00488c09
mov dword [ebp + 8], eax
mov eax, dword [0x53dce4]
cmp eax, 0
je 0x48ad07
push dword [0x53dcbc]
push dword [ebp - 0x24]
push dword [ebp - 0x24]
push dword [ebp + 0x10]
push 0x200
call fcn.00487b1b
mov eax, dword [0x53dcbc]
mov dword [ebp - 0x24], eax
jmp 0x48af46
mov eax, dword [ebp + 0x18]
cmp eax, 0
je 0x48ad20
push dword [ebp + 8]
call fcn.004876f3
jmp 0x48ad28
push dword [ebp + 8]
call fcn.0048765d
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 [0x53dce4]
cmp eax, 0
je 0x48ad6d
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.00487b1b
mov eax, dword [ebp + 8]
add eax, 0x10
mov dword [ebp + 8], eax
jmp 0x48af46
push 0xb
push dword [0x54746c]
call fcn.00452889
push eax
push 9
push dword [0x547444]
call fcn.00452889
push eax
push 8
lea esi, [esp + 4]
push esi
push 2
call fcn.0042c0ce
jmp 0x48af46
mov eax, dword [ebp + 0x1c]
cmp eax, 0
je 0x48ae04
mov eax, dword [ebp + 0x18]
cmp eax, 0
je 0x48adca
push dword [ebp + 8]
call fcn.004876f3
jmp 0x48add2
push dword [ebp + 8]
call fcn.0048765d
mov dword [ebp - 0x24], eax
mov eax, dword [0x53dce4]
cmp eax, 0
je 0x48adf7
push dword [ebp - 0x24]
push dword [ebp + 8]
push dword [ebp + 8]
push dword [ebp + 0x10]
push 0x200
call fcn.00487b1b
mov eax, dword [ebp + 8]
add eax, 0x10
mov dword [ebp + 8], eax
jmp 0x48ae55
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 0x48ae1f
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.0048a21f
mov dword [ebp + 8], eax
mov eax, dword [0x53dce4]
cmp eax, 0
je 0x48ae55
mov eax, dword [0x53dcbc]
mov dword [ebp - 0x24], eax
jmp 0x48af46
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 0x48ae82
mov eax, dword [ebp - 0x24]
mov eax, dword [eax]
and eax, 0xff
cmp eax, 5
jne 0x48ae82
jmp 0x48ae86
xor eax, eax
jmp 0x48ae89
xor eax, eax
inc eax
cmp eax, 0
je 0x48aefa
mov eax, dword [ebp + 8]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x34]
mov eax, dword [eax + 8]
push eax
call fcn.0044b276
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x40]
mov edx, dword [0x5376e4]
cmp eax, edx
je 0x48aec6
mov eax, dword [ebp - 0x40]
mov edx, dword [0x5376e8]
cmp eax, edx
je 0x48aec6
xor eax, eax
jmp 0x48aec9
xor eax, eax
inc eax
cmp eax, 0
je 0x48aefa
push 0xe
push dword [0x54746c]
call fcn.00452889
push eax
push 9
push dword [0x547444]
call fcn.00452889
push eax
push 8
lea esi, [esp + 4]
push esi
push 2
call fcn.0042c0ce
mov eax, dword [ebp + 0x18]
cmp eax, 0
je 0x48af0e
push dword [ebp + 8]
call fcn.004876f3
jmp 0x48af16
push dword [ebp + 8]
call fcn.0048765d
mov dword [ebp - 0x24], eax
mov eax, dword [0x53dce4]
cmp eax, 0
je 0x48af3b
push dword [ebp - 0x24]
push dword [ebp + 8]
push dword [ebp + 8]
push dword [ebp + 0x10]
push 0x200
call fcn.00487b1b
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 0x48af63
call fcn.0048a53a
mov eax, dword [ebp - 0x44]
xor al, 1
cmp eax, 0
je 0x48af52
mov eax, dword [0x53dce4]
cmp eax, 0
je 0x48af7b
mov eax, dword [ebp - 0x48]
cmp eax, 0
je 0x48af7b
jmp 0x48af7f
xor eax, eax
jmp 0x48af82
xor eax, eax
inc eax
cmp eax, 0
je 0x48af9f
push dword [ebp - 0x24]
push dword [ebp - 0x2c]
push dword [ebp + 8]
push dword [ebp + 0x10]
push 0x8000
call fcn.00487b1b
mov eax, dword [ebp + 8]
leave
ret 0x18