Function at 0x48a406
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0
push 0
sub esp, 0x44
jmp 0x48a53d
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 [0x53edfc]
mov dword [ebp - 0x30], eax
mov eax, dword [0x53ee1c]
cmp eax, 0
je 0x48a57c
push dword [ebp + 8]
push dword [ebp + 8]
push dword [ebp + 8]
push dword [ebp + 0x10]
push 0x100
call fcn.004879f6
mov eax, dword [ebp + 8]
mov eax, dword [eax]
and eax, 0xff
cmp eax, 6
je 0x48a67c
cmp eax, 0x10
je 0x48a6cd
cmp eax, 0x1b
je 0x48a7b2
cmp eax, 0x12
je 0x48a8b7
cmp eax, 0x11
je 0x48a913
cmp eax, 0xf
je 0x48a978
cmp eax, 0x19
je 0x48ab12
cmp eax, 0x1c
je 0x48ab83
cmp eax, 0x1a
je 0x48abe7
cmp eax, 0x17
je 0x48ac58
cmp eax, 0x18
je 0x48ac87
cmp eax, 0x1d
je 0x48ac87
cmp eax, 0x15
je 0x48ac87
cmp eax, 0x16
je 0x48ac87
cmp eax, 0x14
je 0x48ad35
mov eax, dword [ebp + 0x18]
cmp eax, 0
je 0x48a63f
push dword [ebp + 8]
call fcn.004875ce
jmp 0x48a647
push dword [ebp + 8]
call fcn.00487538
mov dword [ebp - 0x24], eax
mov eax, dword [0x53ee1c]
cmp eax, 0
je 0x48a66c
push dword [ebp - 0x24]
push dword [ebp + 8]
push dword [ebp + 8]
push dword [ebp + 0x10]
push 0x200
call fcn.004879f6
mov eax, dword [ebp + 8]
add eax, 0x10
mov dword [ebp + 8], eax
jmp 0x48ae21
push dword [0x5387dc]
call fcn.00486550
xor eax, eax
inc eax
push eax
push dword [ebp + 8]
call fcn.0048afaf
mov eax, dword [ebp + 0x18]
cmp eax, 0
je 0x48a6a4
call fcn.004868db
jmp 0x48a6a9
call fcn.00486912
mov eax, dword [ebp + 8]
add eax, 0x10
mov dword [ebp + 8], eax
mov eax, dword [0x53ee1c]
cmp eax, 0
je 0x48a6c8
mov eax, dword [0x53edf4]
mov dword [ebp - 0x24], eax
jmp 0x48ae21
push dword [ebp + 8]
call fcn.00486550
push dword [ebp + 8]
call fcn.0044c3f3
mov eax, dword [0x53ee1c]
cmp eax, 0
je 0x48a6ff
push dword [ebp + 8]
push dword [ebp + 8]
push dword [ebp + 8]
push dword [ebp + 0x10]
push 0x200
call fcn.004879f6
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 0x48a74d
mov eax, dword [ebp + 8]
sub eax, 0x10
push eax
push 3
push dword [0x54858c]
call fcn.00452889
push eax
push 3
push dword [0x54857c]
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.0048a406
mov dword [ebp + 8], eax
mov eax, dword [0x53ee1c]
cmp eax, 0
je 0x48a792
call fcn.00487648
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.004879f6
call fcn.0044c5bf
mov eax, dword [ebp + 0x18]
cmp eax, 0
je 0x48a7a8
call fcn.004868db
jmp 0x48a7ad
call fcn.00486912
jmp 0x48ae21
mov eax, dword [ebp + 8]
mov dword [ebp - 0x24], eax
mov eax, dword [0x53ee1c]
cmp eax, 0
je 0x48a7da
push dword [ebp + 8]
push dword [ebp + 8]
push dword [ebp + 8]
push dword [ebp + 0x10]
push 0x200
call fcn.004879f6
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 0x48a81c
push dword [ebp - 0x24]
push 3
push dword [0x54858c]
call fcn.00452889
push eax
push 3
push dword [0x54857c]
call fcn.00452889
push eax
push 0xc
lea esi, [esp + 4]
push esi
push 3
call fcn.0042c0ce
push dword [0x5388c4]
call fcn.00486550
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.0048a406
mov dword [ebp + 8], eax
mov eax, dword [0x53ee1c]
cmp eax, 0
je 0x48a867
call fcn.00487648
push eax
push dword [ebp - 0x24]
push dword [ebp + 8]
push dword [ebp + 0x10]
push 0x400
call fcn.004879f6
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.00488ae4
mov dword [ebp + 8], eax
mov eax, dword [ebp + 0x18]
cmp eax, 0
je 0x48a899
call fcn.004868db
jmp 0x48a89e
call fcn.00486912
mov eax, dword [0x53ee1c]
cmp eax, 0
je 0x48a8b2
mov eax, dword [0x53edf4]
mov dword [ebp - 0x24], eax
jmp 0x48ae21
push dword [ebp + 8]
call fcn.0044bc1c
mov dword [ebp - 0x24], eax
mov eax, dword [ebp + 0x18]
cmp eax, 0
je 0x48a8d6
push dword [ebp - 0x24]
call fcn.004875ce
jmp 0x48a8de
push dword [ebp - 0x24]
call fcn.00487538
mov dword [ebp - 0x24], eax
mov eax, dword [0x53ee1c]
cmp eax, 0
je 0x48a903
push dword [ebp - 0x24]
push dword [ebp + 8]
push dword [ebp + 8]
push dword [ebp + 0x10]
push 0x200
call fcn.004879f6
mov eax, dword [ebp + 8]
add eax, 0x10
mov dword [ebp + 8], eax
jmp 0x48ae21
mov eax, dword [ebp + 0x18]
cmp eax, 0
je 0x48a92a
push dword [ebp + 8]
call fcn.0044c3f3
mov dword [ebp - 0x34], eax
jmp 0x48a935
push dword [ebp + 8]
call fcn.00487538
mov dword [ebp - 0x34], eax
mov eax, 0xf
xchg edx, eax
mov eax, dword [ebp - 0x34]
mov dword [eax], edx
mov eax, dword [0x53ee1c]
cmp eax, 0
je 0x48a968
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.004879f6
mov eax, dword [ebp + 8]
add eax, 0x10
mov dword [ebp + 8], eax
jmp 0x48ae21
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 0x48aa37
cmp eax, 0x11
je 0x48aa6f
cmp eax, 0x18
je 0x48aaa1
cmp eax, 0x1d
je 0x48aaa1
cmp eax, 0x15
je 0x48aaa1
cmp eax, 0x16
je 0x48aaa1
cmp eax, 0x17
je 0x48aada
mov eax, dword [0x53ee1c]
cmp eax, 0
je 0x48aa13
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.004879f6
mov eax, dword [ebp + 0x18]
cmp eax, 0
je 0x48aa27
push dword [ebp - 0x24]
call fcn.004875ce
jmp 0x48aa2f
push dword [ebp - 0x24]
call fcn.0048751f
mov dword [ebp - 0x24], eax
jmp 0x48ab0d
mov eax, dword [ebp + 8]
sub eax, 0x10
push eax
push 2
push dword [0x54858c]
call fcn.00452889
push eax
push 3
push dword [0x54857c]
call fcn.00452889
push eax
push 0xc
lea esi, [esp + 4]
push esi
push 3
call fcn.0042c0ce
jmp 0x48ab0d
mov eax, dword [0x53ee1c]
cmp eax, 0
je 0x48aa97
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.004879f6
push dword [ebp - 0x24]
call fcn.0044c3f3
jmp 0x48ab0d
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.0048a0fa
mov dword [ebp + 8], eax
mov eax, dword [0x53ee1c]
cmp eax, 0
je 0x48aad8
mov eax, dword [0x53edf4]
mov dword [ebp - 0x24], eax
jmp 0x48ab0d
mov eax, dword [ebp + 8]
sub eax, 0x10
push eax
push 0xf
push dword [0x54858c]
call fcn.00452889
push eax
push 3
push dword [0x54857c]
call fcn.00452889
push eax
push 0xc
lea esi, [esp + 4]
push esi
push 3
call fcn.0042c0ce
jmp 0x48ae21
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.00488ae4
mov dword [ebp + 8], eax
mov eax, dword [0x53ee1c]
cmp eax, 0
je 0x48ab7e
mov eax, dword [ebp + 0x18]
cmp eax, 0
je 0x48ab60
call fcn.00487648
jmp 0x48ab65
mov eax, dword [0x53edf4]
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.004879f6
jmp 0x48ae21
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.00488ae4
mov dword [ebp + 8], eax
mov eax, dword [0x53ee1c]
cmp eax, 0
je 0x48abe2
push dword [0x53edf4]
push dword [ebp - 0x24]
push dword [ebp - 0x24]
push dword [ebp + 0x10]
push 0x200
call fcn.004879f6
mov eax, dword [0x53edf4]
mov dword [ebp - 0x24], eax
jmp 0x48ae21
mov eax, dword [ebp + 0x18]
cmp eax, 0
je 0x48abfb
push dword [ebp + 8]
call fcn.004875ce
jmp 0x48ac03
push dword [ebp + 8]
call fcn.00487538
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 [0x53ee1c]
cmp eax, 0
je 0x48ac48
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.004879f6
mov eax, dword [ebp + 8]
add eax, 0x10
mov dword [ebp + 8], eax
jmp 0x48ae21
push 0xb
push dword [0x5485a4]
call fcn.00452889
push eax
push 9
push dword [0x54857c]
call fcn.00452889
push eax
push 8
lea esi, [esp + 4]
push esi
push 2
call fcn.0042c0ce
jmp 0x48ae21
mov eax, dword [ebp + 0x1c]
cmp eax, 0
je 0x48acdf
mov eax, dword [ebp + 0x18]
cmp eax, 0
je 0x48aca5
push dword [ebp + 8]
call fcn.004875ce
jmp 0x48acad
push dword [ebp + 8]
call fcn.00487538
mov dword [ebp - 0x24], eax
mov eax, dword [0x53ee1c]
cmp eax, 0
je 0x48acd2
push dword [ebp - 0x24]
push dword [ebp + 8]
push dword [ebp + 8]
push dword [ebp + 0x10]
push 0x200
call fcn.004879f6
mov eax, dword [ebp + 8]
add eax, 0x10
mov dword [ebp + 8], eax
jmp 0x48ad30
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 0x48acfa
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.0048a0fa
mov dword [ebp + 8], eax
mov eax, dword [0x53ee1c]
cmp eax, 0
je 0x48ad30
mov eax, dword [0x53edf4]
mov dword [ebp - 0x24], eax
jmp 0x48ae21
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 0x48ad5d
mov eax, dword [ebp - 0x24]
mov eax, dword [eax]
and eax, 0xff
cmp eax, 5
jne 0x48ad5d
jmp 0x48ad61
xor eax, eax
jmp 0x48ad64
xor eax, eax
inc eax
cmp eax, 0
je 0x48add5
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 [0x5387c4]
cmp eax, edx
je 0x48ada1
mov eax, dword [ebp - 0x40]
mov edx, dword [0x5387c8]
cmp eax, edx
je 0x48ada1
xor eax, eax
jmp 0x48ada4
xor eax, eax
inc eax
cmp eax, 0
je 0x48add5
push 0xe
push dword [0x5485a4]
call fcn.00452889
push eax
push 9
push dword [0x54857c]
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 0x48ade9
push dword [ebp + 8]
call fcn.004875ce
jmp 0x48adf1
push dword [ebp + 8]
call fcn.00487538
mov dword [ebp - 0x24], eax
mov eax, dword [0x53ee1c]
cmp eax, 0
je 0x48ae16
push dword [ebp - 0x24]
push dword [ebp + 8]
push dword [ebp + 8]
push dword [ebp + 0x10]
push 0x200
call fcn.004879f6
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 0x48ae3e
call fcn.0048a415
mov eax, dword [ebp - 0x44]
xor al, 1
cmp eax, 0
je 0x48ae2d
mov eax, dword [0x53ee1c]
cmp eax, 0
je 0x48ae56
mov eax, dword [ebp - 0x48]
cmp eax, 0
je 0x48ae56
jmp 0x48ae5a
xor eax, eax
jmp 0x48ae5d
xor eax, eax
inc eax
cmp eax, 0
je 0x48ae7a
push dword [ebp - 0x24]
push dword [ebp - 0x2c]
push dword [ebp + 8]
push dword [ebp + 0x10]
push 0x8000
call fcn.004879f6
mov eax, dword [ebp + 8]
leave
ret 0x18