Function at 0x48a562
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0
push 0
sub esp, 0x44
jmp 0x48a699
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 [0x53dd0c]
mov dword [ebp - 0x30], eax
mov eax, dword [0x53dd2c]
cmp eax, 0
je 0x48a6d8
push dword [ebp + 8]
push dword [ebp + 8]
push dword [ebp + 8]
push dword [ebp + 0x10]
push 0x100
call fcn.00487b52
mov eax, dword [ebp + 8]
mov eax, dword [eax]
and eax, 0xff
cmp eax, 6
je 0x48a7d8
cmp eax, 0x10
je 0x48a829
cmp eax, 0x1b
je 0x48a90e
cmp eax, 0x12
je 0x48aa13
cmp eax, 0x11
je 0x48aa6f
cmp eax, 0xf
je 0x48aad4
cmp eax, 0x19
je 0x48ac6e
cmp eax, 0x1c
je 0x48acdf
cmp eax, 0x1a
je 0x48ad43
cmp eax, 0x17
je 0x48adb4
cmp eax, 0x18
je 0x48ade3
cmp eax, 0x1d
je 0x48ade3
cmp eax, 0x15
je 0x48ade3
cmp eax, 0x16
je 0x48ade3
cmp eax, 0x14
je 0x48ae91
mov eax, dword [ebp + 0x18]
cmp eax, 0
je 0x48a79b
push dword [ebp + 8]
call fcn.0048772a
jmp 0x48a7a3
push dword [ebp + 8]
call fcn.00487694
mov dword [ebp - 0x24], eax
mov eax, dword [0x53dd2c]
cmp eax, 0
je 0x48a7c8
push dword [ebp - 0x24]
push dword [ebp + 8]
push dword [ebp + 8]
push dword [ebp + 0x10]
push 0x200
call fcn.00487b52
mov eax, dword [ebp + 8]
add eax, 0x10
mov dword [ebp + 8], eax
jmp 0x48af7d
push dword [0x537744]
call fcn.004866ac
xor eax, eax
inc eax
push eax
push dword [ebp + 8]
call fcn.0048b10b
mov eax, dword [ebp + 0x18]
cmp eax, 0
je 0x48a800
call fcn.00486a37
jmp 0x48a805
call fcn.00486a6e
mov eax, dword [ebp + 8]
add eax, 0x10
mov dword [ebp + 8], eax
mov eax, dword [0x53dd2c]
cmp eax, 0
je 0x48a824
mov eax, dword [0x53dd04]
mov dword [ebp - 0x24], eax
jmp 0x48af7d
push dword [ebp + 8]
call fcn.004866ac
push dword [ebp + 8]
call fcn.0044c3f3
mov eax, dword [0x53dd2c]
cmp eax, 0
je 0x48a85b
push dword [ebp + 8]
push dword [ebp + 8]
push dword [ebp + 8]
push dword [ebp + 0x10]
push 0x200
call fcn.00487b52
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 0x48a8a9
mov eax, dword [ebp + 8]
sub eax, 0x10
push eax
push 3
push dword [0x54749c]
call fcn.00452889
push eax
push 3
push dword [0x54748c]
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.0048a562
mov dword [ebp + 8], eax
mov eax, dword [0x53dd2c]
cmp eax, 0
je 0x48a8ee
call fcn.004877a4
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.00487b52
call fcn.0044c5bf
mov eax, dword [ebp + 0x18]
cmp eax, 0
je 0x48a904
call fcn.00486a37
jmp 0x48a909
call fcn.00486a6e
jmp 0x48af7d
mov eax, dword [ebp + 8]
mov dword [ebp - 0x24], eax
mov eax, dword [0x53dd2c]
cmp eax, 0
je 0x48a936
push dword [ebp + 8]
push dword [ebp + 8]
push dword [ebp + 8]
push dword [ebp + 0x10]
push 0x200
call fcn.00487b52
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 0x48a978
push dword [ebp - 0x24]
push 3
push dword [0x54749c]
call fcn.00452889
push eax
push 3
push dword [0x54748c]
call fcn.00452889
push eax
push 0xc
lea esi, [esp + 4]
push esi
push 3
call fcn.0042c0ce
push dword [0x53782c]
call fcn.004866ac
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.0048a562
mov dword [ebp + 8], eax
mov eax, dword [0x53dd2c]
cmp eax, 0
je 0x48a9c3
call fcn.004877a4
push eax
push dword [ebp - 0x24]
push dword [ebp + 8]
push dword [ebp + 0x10]
push 0x400
call fcn.00487b52
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.00488c40
mov dword [ebp + 8], eax
mov eax, dword [ebp + 0x18]
cmp eax, 0
je 0x48a9f5
call fcn.00486a37
jmp 0x48a9fa
call fcn.00486a6e
mov eax, dword [0x53dd2c]
cmp eax, 0
je 0x48aa0e
mov eax, dword [0x53dd04]
mov dword [ebp - 0x24], eax
jmp 0x48af7d
push dword [ebp + 8]
call fcn.0044bc1c
mov dword [ebp - 0x24], eax
mov eax, dword [ebp + 0x18]
cmp eax, 0
je 0x48aa32
push dword [ebp - 0x24]
call fcn.0048772a
jmp 0x48aa3a
push dword [ebp - 0x24]
call fcn.00487694
mov dword [ebp - 0x24], eax
mov eax, dword [0x53dd2c]
cmp eax, 0
je 0x48aa5f
push dword [ebp - 0x24]
push dword [ebp + 8]
push dword [ebp + 8]
push dword [ebp + 0x10]
push 0x200
call fcn.00487b52
mov eax, dword [ebp + 8]
add eax, 0x10
mov dword [ebp + 8], eax
jmp 0x48af7d
mov eax, dword [ebp + 0x18]
cmp eax, 0
je 0x48aa86
push dword [ebp + 8]
call fcn.0044c3f3
mov dword [ebp - 0x34], eax
jmp 0x48aa91
push dword [ebp + 8]
call fcn.00487694
mov dword [ebp - 0x34], eax
mov eax, 0xf
xchg edx, eax
mov eax, dword [ebp - 0x34]
mov dword [eax], edx
mov eax, dword [0x53dd2c]
cmp eax, 0
je 0x48aac4
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.00487b52
mov eax, dword [ebp + 8]
add eax, 0x10
mov dword [ebp + 8], eax
jmp 0x48af7d
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 0x48ab93
cmp eax, 0x11
je 0x48abcb
cmp eax, 0x18
je 0x48abfd
cmp eax, 0x1d
je 0x48abfd
cmp eax, 0x15
je 0x48abfd
cmp eax, 0x16
je 0x48abfd
cmp eax, 0x17
je 0x48ac36
mov eax, dword [0x53dd2c]
cmp eax, 0
je 0x48ab6f
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.00487b52
mov eax, dword [ebp + 0x18]
cmp eax, 0
je 0x48ab83
push dword [ebp - 0x24]
call fcn.0048772a
jmp 0x48ab8b
push dword [ebp - 0x24]
call fcn.0048767b
mov dword [ebp - 0x24], eax
jmp 0x48ac69
mov eax, dword [ebp + 8]
sub eax, 0x10
push eax
push 2
push dword [0x54749c]
call fcn.00452889
push eax
push 3
push dword [0x54748c]
call fcn.00452889
push eax
push 0xc
lea esi, [esp + 4]
push esi
push 3
call fcn.0042c0ce
jmp 0x48ac69
mov eax, dword [0x53dd2c]
cmp eax, 0
je 0x48abf3
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.00487b52
push dword [ebp - 0x24]
call fcn.0044c3f3
jmp 0x48ac69
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.0048a256
mov dword [ebp + 8], eax
mov eax, dword [0x53dd2c]
cmp eax, 0
je 0x48ac34
mov eax, dword [0x53dd04]
mov dword [ebp - 0x24], eax
jmp 0x48ac69
mov eax, dword [ebp + 8]
sub eax, 0x10
push eax
push 0xf
push dword [0x54749c]
call fcn.00452889
push eax
push 3
push dword [0x54748c]
call fcn.00452889
push eax
push 0xc
lea esi, [esp + 4]
push esi
push 3
call fcn.0042c0ce
jmp 0x48af7d
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.00488c40
mov dword [ebp + 8], eax
mov eax, dword [0x53dd2c]
cmp eax, 0
je 0x48acda
mov eax, dword [ebp + 0x18]
cmp eax, 0
je 0x48acbc
call fcn.004877a4
jmp 0x48acc1
mov eax, dword [0x53dd04]
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.00487b52
jmp 0x48af7d
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.00488c40
mov dword [ebp + 8], eax
mov eax, dword [0x53dd2c]
cmp eax, 0
je 0x48ad3e
push dword [0x53dd04]
push dword [ebp - 0x24]
push dword [ebp - 0x24]
push dword [ebp + 0x10]
push 0x200
call fcn.00487b52
mov eax, dword [0x53dd04]
mov dword [ebp - 0x24], eax
jmp 0x48af7d
mov eax, dword [ebp + 0x18]
cmp eax, 0
je 0x48ad57
push dword [ebp + 8]
call fcn.0048772a
jmp 0x48ad5f
push dword [ebp + 8]
call fcn.00487694
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 [0x53dd2c]
cmp eax, 0
je 0x48ada4
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.00487b52
mov eax, dword [ebp + 8]
add eax, 0x10
mov dword [ebp + 8], eax
jmp 0x48af7d
push 0xb
push dword [0x5474b4]
call fcn.00452889
push eax
push 9
push dword [0x54748c]
call fcn.00452889
push eax
push 8
lea esi, [esp + 4]
push esi
push 2
call fcn.0042c0ce
jmp 0x48af7d
mov eax, dword [ebp + 0x1c]
cmp eax, 0
je 0x48ae3b
mov eax, dword [ebp + 0x18]
cmp eax, 0
je 0x48ae01
push dword [ebp + 8]
call fcn.0048772a
jmp 0x48ae09
push dword [ebp + 8]
call fcn.00487694
mov dword [ebp - 0x24], eax
mov eax, dword [0x53dd2c]
cmp eax, 0
je 0x48ae2e
push dword [ebp - 0x24]
push dword [ebp + 8]
push dword [ebp + 8]
push dword [ebp + 0x10]
push 0x200
call fcn.00487b52
mov eax, dword [ebp + 8]
add eax, 0x10
mov dword [ebp + 8], eax
jmp 0x48ae8c
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 0x48ae56
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.0048a256
mov dword [ebp + 8], eax
mov eax, dword [0x53dd2c]
cmp eax, 0
je 0x48ae8c
mov eax, dword [0x53dd04]
mov dword [ebp - 0x24], eax
jmp 0x48af7d
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 0x48aeb9
mov eax, dword [ebp - 0x24]
mov eax, dword [eax]
and eax, 0xff
cmp eax, 5
jne 0x48aeb9
jmp 0x48aebd
xor eax, eax
jmp 0x48aec0
xor eax, eax
inc eax
cmp eax, 0
je 0x48af31
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 [0x53772c]
cmp eax, edx
je 0x48aefd
mov eax, dword [ebp - 0x40]
mov edx, dword [0x537730]
cmp eax, edx
je 0x48aefd
xor eax, eax
jmp 0x48af00
xor eax, eax
inc eax
cmp eax, 0
je 0x48af31
push 0xe
push dword [0x5474b4]
call fcn.00452889
push eax
push 9
push dword [0x54748c]
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 0x48af45
push dword [ebp + 8]
call fcn.0048772a
jmp 0x48af4d
push dword [ebp + 8]
call fcn.00487694
mov dword [ebp - 0x24], eax
mov eax, dword [0x53dd2c]
cmp eax, 0
je 0x48af72
push dword [ebp - 0x24]
push dword [ebp + 8]
push dword [ebp + 8]
push dword [ebp + 0x10]
push 0x200
call fcn.00487b52
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 0x48af9a
call fcn.0048a571
mov eax, dword [ebp - 0x44]
xor al, 1
cmp eax, 0
je 0x48af89
mov eax, dword [0x53dd2c]
cmp eax, 0
je 0x48afb2
mov eax, dword [ebp - 0x48]
cmp eax, 0
je 0x48afb2
jmp 0x48afb6
xor eax, eax
jmp 0x48afb9
xor eax, eax
inc eax
cmp eax, 0
je 0x48afd6
push dword [ebp - 0x24]
push dword [ebp - 0x2c]
push dword [ebp + 8]
push dword [ebp + 0x10]
push 0x8000
call fcn.00487b52
mov eax, dword [ebp + 8]
leave
ret 0x18