Function at 0x48a41e
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0
push 0
sub esp, 0x44
jmp 0x48a555
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 [0x53ee2c]
mov dword [ebp - 0x30], eax
mov eax, dword [0x53ee4c]
cmp eax, 0
je 0x48a594
push dword [ebp + 8]
push dword [ebp + 8]
push dword [ebp + 8]
push dword [ebp + 0x10]
push 0x100
call fcn.00487a0e
mov eax, dword [ebp + 8]
mov eax, dword [eax]
and eax, 0xff
cmp eax, 6
je 0x48a694
cmp eax, 0x10
je 0x48a6e5
cmp eax, 0x1b
je 0x48a7ca
cmp eax, 0x12
je 0x48a8cf
cmp eax, 0x11
je 0x48a92b
cmp eax, 0xf
je 0x48a990
cmp eax, 0x19
je 0x48ab2a
cmp eax, 0x1c
je 0x48ab9b
cmp eax, 0x1a
je 0x48abff
cmp eax, 0x17
je 0x48ac70
cmp eax, 0x18
je 0x48ac9f
cmp eax, 0x1d
je 0x48ac9f
cmp eax, 0x15
je 0x48ac9f
cmp eax, 0x16
je 0x48ac9f
cmp eax, 0x14
je 0x48ad4d
mov eax, dword [ebp + 0x18]
cmp eax, 0
je 0x48a657
push dword [ebp + 8]
call fcn.004875e6
jmp 0x48a65f
push dword [ebp + 8]
call fcn.00487550
mov dword [ebp - 0x24], eax
mov eax, dword [0x53ee4c]
cmp eax, 0
je 0x48a684
push dword [ebp - 0x24]
push dword [ebp + 8]
push dword [ebp + 8]
push dword [ebp + 0x10]
push 0x200
call fcn.00487a0e
mov eax, dword [ebp + 8]
add eax, 0x10
mov dword [ebp + 8], eax
jmp 0x48ae39
push dword [0x53880c]
call fcn.00486568
xor eax, eax
inc eax
push eax
push dword [ebp + 8]
call fcn.0048afc7
mov eax, dword [ebp + 0x18]
cmp eax, 0
je 0x48a6bc
call fcn.004868f3
jmp 0x48a6c1
call fcn.0048692a
mov eax, dword [ebp + 8]
add eax, 0x10
mov dword [ebp + 8], eax
mov eax, dword [0x53ee4c]
cmp eax, 0
je 0x48a6e0
mov eax, dword [0x53ee24]
mov dword [ebp - 0x24], eax
jmp 0x48ae39
push dword [ebp + 8]
call fcn.00486568
push dword [ebp + 8]
call fcn.0044c3f3
mov eax, dword [0x53ee4c]
cmp eax, 0
je 0x48a717
push dword [ebp + 8]
push dword [ebp + 8]
push dword [ebp + 8]
push dword [ebp + 0x10]
push 0x200
call fcn.00487a0e
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 0x48a765
mov eax, dword [ebp + 8]
sub eax, 0x10
push eax
push 3
push dword [0x5485bc]
call fcn.004528a1
push eax
push 3
push dword [0x5485ac]
call fcn.004528a1
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.0048a41e
mov dword [ebp + 8], eax
mov eax, dword [0x53ee4c]
cmp eax, 0
je 0x48a7aa
call fcn.00487660
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.00487a0e
call fcn.0044c5bf
mov eax, dword [ebp + 0x18]
cmp eax, 0
je 0x48a7c0
call fcn.004868f3
jmp 0x48a7c5
call fcn.0048692a
jmp 0x48ae39
mov eax, dword [ebp + 8]
mov dword [ebp - 0x24], eax
mov eax, dword [0x53ee4c]
cmp eax, 0
je 0x48a7f2
push dword [ebp + 8]
push dword [ebp + 8]
push dword [ebp + 8]
push dword [ebp + 0x10]
push 0x200
call fcn.00487a0e
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 0x48a834
push dword [ebp - 0x24]
push 3
push dword [0x5485bc]
call fcn.004528a1
push eax
push 3
push dword [0x5485ac]
call fcn.004528a1
push eax
push 0xc
lea esi, [esp + 4]
push esi
push 3
call fcn.0042c0ce
push dword [0x5388f4]
call fcn.00486568
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.0048a41e
mov dword [ebp + 8], eax
mov eax, dword [0x53ee4c]
cmp eax, 0
je 0x48a87f
call fcn.00487660
push eax
push dword [ebp - 0x24]
push dword [ebp + 8]
push dword [ebp + 0x10]
push 0x400
call fcn.00487a0e
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.00488afc
mov dword [ebp + 8], eax
mov eax, dword [ebp + 0x18]
cmp eax, 0
je 0x48a8b1
call fcn.004868f3
jmp 0x48a8b6
call fcn.0048692a
mov eax, dword [0x53ee4c]
cmp eax, 0
je 0x48a8ca
mov eax, dword [0x53ee24]
mov dword [ebp - 0x24], eax
jmp 0x48ae39
push dword [ebp + 8]
call fcn.0044bc1c
mov dword [ebp - 0x24], eax
mov eax, dword [ebp + 0x18]
cmp eax, 0
je 0x48a8ee
push dword [ebp - 0x24]
call fcn.004875e6
jmp 0x48a8f6
push dword [ebp - 0x24]
call fcn.00487550
mov dword [ebp - 0x24], eax
mov eax, dword [0x53ee4c]
cmp eax, 0
je 0x48a91b
push dword [ebp - 0x24]
push dword [ebp + 8]
push dword [ebp + 8]
push dword [ebp + 0x10]
push 0x200
call fcn.00487a0e
mov eax, dword [ebp + 8]
add eax, 0x10
mov dword [ebp + 8], eax
jmp 0x48ae39
mov eax, dword [ebp + 0x18]
cmp eax, 0
je 0x48a942
push dword [ebp + 8]
call fcn.0044c3f3
mov dword [ebp - 0x34], eax
jmp 0x48a94d
push dword [ebp + 8]
call fcn.00487550
mov dword [ebp - 0x34], eax
mov eax, 0xf
xchg edx, eax
mov eax, dword [ebp - 0x34]
mov dword [eax], edx
mov eax, dword [0x53ee4c]
cmp eax, 0
je 0x48a980
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.00487a0e
mov eax, dword [ebp + 8]
add eax, 0x10
mov dword [ebp + 8], eax
jmp 0x48ae39
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 0x48aa4f
cmp eax, 0x11
je 0x48aa87
cmp eax, 0x18
je 0x48aab9
cmp eax, 0x1d
je 0x48aab9
cmp eax, 0x15
je 0x48aab9
cmp eax, 0x16
je 0x48aab9
cmp eax, 0x17
je 0x48aaf2
mov eax, dword [0x53ee4c]
cmp eax, 0
je 0x48aa2b
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.00487a0e
mov eax, dword [ebp + 0x18]
cmp eax, 0
je 0x48aa3f
push dword [ebp - 0x24]
call fcn.004875e6
jmp 0x48aa47
push dword [ebp - 0x24]
call fcn.00487537
mov dword [ebp - 0x24], eax
jmp 0x48ab25
mov eax, dword [ebp + 8]
sub eax, 0x10
push eax
push 2
push dword [0x5485bc]
call fcn.004528a1
push eax
push 3
push dword [0x5485ac]
call fcn.004528a1
push eax
push 0xc
lea esi, [esp + 4]
push esi
push 3
call fcn.0042c0ce
jmp 0x48ab25
mov eax, dword [0x53ee4c]
cmp eax, 0
je 0x48aaaf
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.00487a0e
push dword [ebp - 0x24]
call fcn.0044c3f3
jmp 0x48ab25
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.0048a112
mov dword [ebp + 8], eax
mov eax, dword [0x53ee4c]
cmp eax, 0
je 0x48aaf0
mov eax, dword [0x53ee24]
mov dword [ebp - 0x24], eax
jmp 0x48ab25
mov eax, dword [ebp + 8]
sub eax, 0x10
push eax
push 0xf
push dword [0x5485bc]
call fcn.004528a1
push eax
push 3
push dword [0x5485ac]
call fcn.004528a1
push eax
push 0xc
lea esi, [esp + 4]
push esi
push 3
call fcn.0042c0ce
jmp 0x48ae39
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.00488afc
mov dword [ebp + 8], eax
mov eax, dword [0x53ee4c]
cmp eax, 0
je 0x48ab96
mov eax, dword [ebp + 0x18]
cmp eax, 0
je 0x48ab78
call fcn.00487660
jmp 0x48ab7d
mov eax, dword [0x53ee24]
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.00487a0e
jmp 0x48ae39
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.00488afc
mov dword [ebp + 8], eax
mov eax, dword [0x53ee4c]
cmp eax, 0
je 0x48abfa
push dword [0x53ee24]
push dword [ebp - 0x24]
push dword [ebp - 0x24]
push dword [ebp + 0x10]
push 0x200
call fcn.00487a0e
mov eax, dword [0x53ee24]
mov dword [ebp - 0x24], eax
jmp 0x48ae39
mov eax, dword [ebp + 0x18]
cmp eax, 0
je 0x48ac13
push dword [ebp + 8]
call fcn.004875e6
jmp 0x48ac1b
push dword [ebp + 8]
call fcn.00487550
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 [0x53ee4c]
cmp eax, 0
je 0x48ac60
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.00487a0e
mov eax, dword [ebp + 8]
add eax, 0x10
mov dword [ebp + 8], eax
jmp 0x48ae39
push 0xb
push dword [0x5485d4]
call fcn.004528a1
push eax
push 9
push dword [0x5485ac]
call fcn.004528a1
push eax
push 8
lea esi, [esp + 4]
push esi
push 2
call fcn.0042c0ce
jmp 0x48ae39
mov eax, dword [ebp + 0x1c]
cmp eax, 0
je 0x48acf7
mov eax, dword [ebp + 0x18]
cmp eax, 0
je 0x48acbd
push dword [ebp + 8]
call fcn.004875e6
jmp 0x48acc5
push dword [ebp + 8]
call fcn.00487550
mov dword [ebp - 0x24], eax
mov eax, dword [0x53ee4c]
cmp eax, 0
je 0x48acea
push dword [ebp - 0x24]
push dword [ebp + 8]
push dword [ebp + 8]
push dword [ebp + 0x10]
push 0x200
call fcn.00487a0e
mov eax, dword [ebp + 8]
add eax, 0x10
mov dword [ebp + 8], eax
jmp 0x48ad48
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 0x48ad12
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.0048a112
mov dword [ebp + 8], eax
mov eax, dword [0x53ee4c]
cmp eax, 0
je 0x48ad48
mov eax, dword [0x53ee24]
mov dword [ebp - 0x24], eax
jmp 0x48ae39
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 0x48ad75
mov eax, dword [ebp - 0x24]
mov eax, dword [eax]
and eax, 0xff
cmp eax, 5
jne 0x48ad75
jmp 0x48ad79
xor eax, eax
jmp 0x48ad7c
xor eax, eax
inc eax
cmp eax, 0
je 0x48aded
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 [0x5387f4]
cmp eax, edx
je 0x48adb9
mov eax, dword [ebp - 0x40]
mov edx, dword [0x5387f8]
cmp eax, edx
je 0x48adb9
xor eax, eax
jmp 0x48adbc
xor eax, eax
inc eax
cmp eax, 0
je 0x48aded
push 0xe
push dword [0x5485d4]
call fcn.004528a1
push eax
push 9
push dword [0x5485ac]
call fcn.004528a1
push eax
push 8
lea esi, [esp + 4]
push esi
push 2
call fcn.0042c0ce
mov eax, dword [ebp + 0x18]
cmp eax, 0
je 0x48ae01
push dword [ebp + 8]
call fcn.004875e6
jmp 0x48ae09
push dword [ebp + 8]
call fcn.00487550
mov dword [ebp - 0x24], eax
mov eax, dword [0x53ee4c]
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.00487a0e
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 0x48ae56
call fcn.0048a42d
mov eax, dword [ebp - 0x44]
xor al, 1
cmp eax, 0
je 0x48ae45
mov eax, dword [0x53ee4c]
cmp eax, 0
je 0x48ae6e
mov eax, dword [ebp - 0x48]
cmp eax, 0
je 0x48ae6e
jmp 0x48ae72
xor eax, eax
jmp 0x48ae75
xor eax, eax
inc eax
cmp eax, 0
je 0x48ae92
push dword [ebp - 0x24]
push dword [ebp - 0x2c]
push dword [ebp + 8]
push dword [ebp + 0x10]
push 0x8000
call fcn.00487a0e
mov eax, dword [ebp + 8]
leave
ret 0x18