Function at 0x48de5b
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0
push 0
sub esp, 0x44
jmp 0x48df92
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 [0x576dd4]
mov dword [ebp - 0x30], eax
mov eax, dword [0x576df4]
cmp eax, 0
je 0x48dfd1
push dword [ebp + 8]
push dword [ebp + 8]
push dword [ebp + 8]
push dword [ebp + 0x10]
push 0x100
call fcn.0048b44b
mov eax, dword [ebp + 8]
mov eax, dword [eax]
and eax, 0xff
cmp eax, 6
je 0x48e0d1
cmp eax, 0x10
je 0x48e122
cmp eax, 0x1b
je 0x48e207
cmp eax, 0x12
je 0x48e30c
cmp eax, 0x11
je 0x48e368
cmp eax, 0xf
je 0x48e3cd
cmp eax, 0x19
je 0x48e567
cmp eax, 0x1c
je 0x48e5d8
cmp eax, 0x1a
je 0x48e63c
cmp eax, 0x17
je 0x48e6ad
cmp eax, 0x18
je 0x48e6dc
cmp eax, 0x1d
je 0x48e6dc
cmp eax, 0x15
je 0x48e6dc
cmp eax, 0x16
je 0x48e6dc
cmp eax, 0x14
je 0x48e78a
mov eax, dword [ebp + 0x18]
cmp eax, 0
je 0x48e094
push dword [ebp + 8]
call fcn.0048b023
jmp 0x48e09c
push dword [ebp + 8]
call fcn.0048af8d
mov dword [ebp - 0x24], eax
mov eax, dword [0x576df4]
cmp eax, 0
je 0x48e0c1
push dword [ebp - 0x24]
push dword [ebp + 8]
push dword [ebp + 8]
push dword [ebp + 0x10]
push 0x200
call fcn.0048b44b
mov eax, dword [ebp + 8]
add eax, 0x10
mov dword [ebp + 8], eax
jmp 0x48e876
push dword [0x57080c]
call fcn.00489fa5
xor eax, eax
inc eax
push eax
push dword [ebp + 8]
call fcn.0048ea04
mov eax, dword [ebp + 0x18]
cmp eax, 0
je 0x48e0f9
call fcn.0048a330
jmp 0x48e0fe
call fcn.0048a367
mov eax, dword [ebp + 8]
add eax, 0x10
mov dword [ebp + 8], eax
mov eax, dword [0x576df4]
cmp eax, 0
je 0x48e11d
mov eax, dword [0x576dcc]
mov dword [ebp - 0x24], eax
jmp 0x48e876
push dword [ebp + 8]
call fcn.00489fa5
push dword [ebp + 8]
call fcn.0044fd59
mov eax, dword [0x576df4]
cmp eax, 0
je 0x48e154
push dword [ebp + 8]
push dword [ebp + 8]
push dword [ebp + 8]
push dword [ebp + 0x10]
push 0x200
call fcn.0048b44b
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 0x48e1a2
mov eax, dword [ebp + 8]
sub eax, 0x10
push eax
push 3
push dword [0x5813d0]
call fcn.004561ef
push eax
push 3
push dword [0x5813c0]
call fcn.004561ef
push eax
push 0xc
lea esi, [esp + 4]
push esi
push 3
call fcn.0042fa34
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.0048de5b
mov dword [ebp + 8], eax
mov eax, dword [0x576df4]
cmp eax, 0
je 0x48e1e7
call fcn.0048b09d
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.0048b44b
call fcn.0044ff25
mov eax, dword [ebp + 0x18]
cmp eax, 0
je 0x48e1fd
call fcn.0048a330
jmp 0x48e202
call fcn.0048a367
jmp 0x48e876
mov eax, dword [ebp + 8]
mov dword [ebp - 0x24], eax
mov eax, dword [0x576df4]
cmp eax, 0
je 0x48e22f
push dword [ebp + 8]
push dword [ebp + 8]
push dword [ebp + 8]
push dword [ebp + 0x10]
push 0x200
call fcn.0048b44b
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 0x48e271
push dword [ebp - 0x24]
push 3
push dword [0x5813d0]
call fcn.004561ef
push eax
push 3
push dword [0x5813c0]
call fcn.004561ef
push eax
push 0xc
lea esi, [esp + 4]
push esi
push 3
call fcn.0042fa34
push dword [0x5708f4]
call fcn.00489fa5
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.0048de5b
mov dword [ebp + 8], eax
mov eax, dword [0x576df4]
cmp eax, 0
je 0x48e2bc
call fcn.0048b09d
push eax
push dword [ebp - 0x24]
push dword [ebp + 8]
push dword [ebp + 0x10]
push 0x400
call fcn.0048b44b
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.0048c539
mov dword [ebp + 8], eax
mov eax, dword [ebp + 0x18]
cmp eax, 0
je 0x48e2ee
call fcn.0048a330
jmp 0x48e2f3
call fcn.0048a367
mov eax, dword [0x576df4]
cmp eax, 0
je 0x48e307
mov eax, dword [0x576dcc]
mov dword [ebp - 0x24], eax
jmp 0x48e876
push dword [ebp + 8]
call fcn.0044f582
mov dword [ebp - 0x24], eax
mov eax, dword [ebp + 0x18]
cmp eax, 0
je 0x48e32b
push dword [ebp - 0x24]
call fcn.0048b023
jmp 0x48e333
push dword [ebp - 0x24]
call fcn.0048af8d
mov dword [ebp - 0x24], eax
mov eax, dword [0x576df4]
cmp eax, 0
je 0x48e358
push dword [ebp - 0x24]
push dword [ebp + 8]
push dword [ebp + 8]
push dword [ebp + 0x10]
push 0x200
call fcn.0048b44b
mov eax, dword [ebp + 8]
add eax, 0x10
mov dword [ebp + 8], eax
jmp 0x48e876
mov eax, dword [ebp + 0x18]
cmp eax, 0
je 0x48e37f
push dword [ebp + 8]
call fcn.0044fd59
mov dword [ebp - 0x34], eax
jmp 0x48e38a
push dword [ebp + 8]
call fcn.0048af8d
mov dword [ebp - 0x34], eax
mov eax, 0xf
xchg edx, eax
mov eax, dword [ebp - 0x34]
mov dword [eax], edx
mov eax, dword [0x576df4]
cmp eax, 0
je 0x48e3bd
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.0048b44b
mov eax, dword [ebp + 8]
add eax, 0x10
mov dword [ebp + 8], eax
jmp 0x48e876
push dword [ebp + 8]
call fcn.0044f582
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 0x48e48c
cmp eax, 0x11
je 0x48e4c4
cmp eax, 0x18
je 0x48e4f6
cmp eax, 0x1d
je 0x48e4f6
cmp eax, 0x15
je 0x48e4f6
cmp eax, 0x16
je 0x48e4f6
cmp eax, 0x17
je 0x48e52f
mov eax, dword [0x576df4]
cmp eax, 0
je 0x48e468
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.0048b44b
mov eax, dword [ebp + 0x18]
cmp eax, 0
je 0x48e47c
push dword [ebp - 0x24]
call fcn.0048b023
jmp 0x48e484
push dword [ebp - 0x24]
call fcn.0048af74
mov dword [ebp - 0x24], eax
jmp 0x48e562
mov eax, dword [ebp + 8]
sub eax, 0x10
push eax
push 2
push dword [0x5813d0]
call fcn.004561ef
push eax
push 3
push dword [0x5813c0]
call fcn.004561ef
push eax
push 0xc
lea esi, [esp + 4]
push esi
push 3
call fcn.0042fa34
jmp 0x48e562
mov eax, dword [0x576df4]
cmp eax, 0
je 0x48e4ec
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.0048b44b
push dword [ebp - 0x24]
call fcn.0044fd59
jmp 0x48e562
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.0048db4f
mov dword [ebp + 8], eax
mov eax, dword [0x576df4]
cmp eax, 0
je 0x48e52d
mov eax, dword [0x576dcc]
mov dword [ebp - 0x24], eax
jmp 0x48e562
mov eax, dword [ebp + 8]
sub eax, 0x10
push eax
push 0xf
push dword [0x5813d0]
call fcn.004561ef
push eax
push 3
push dword [0x5813c0]
call fcn.004561ef
push eax
push 0xc
lea esi, [esp + 4]
push esi
push 3
call fcn.0042fa34
jmp 0x48e876
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.0048c539
mov dword [ebp + 8], eax
mov eax, dword [0x576df4]
cmp eax, 0
je 0x48e5d3
mov eax, dword [ebp + 0x18]
cmp eax, 0
je 0x48e5b5
call fcn.0048b09d
jmp 0x48e5ba
mov eax, dword [0x576dcc]
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.0048b44b
jmp 0x48e876
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.0048c539
mov dword [ebp + 8], eax
mov eax, dword [0x576df4]
cmp eax, 0
je 0x48e637
push dword [0x576dcc]
push dword [ebp - 0x24]
push dword [ebp - 0x24]
push dword [ebp + 0x10]
push 0x200
call fcn.0048b44b
mov eax, dword [0x576dcc]
mov dword [ebp - 0x24], eax
jmp 0x48e876
mov eax, dword [ebp + 0x18]
cmp eax, 0
je 0x48e650
push dword [ebp + 8]
call fcn.0048b023
jmp 0x48e658
push dword [ebp + 8]
call fcn.0048af8d
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 [0x576df4]
cmp eax, 0
je 0x48e69d
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.0048b44b
mov eax, dword [ebp + 8]
add eax, 0x10
mov dword [ebp + 8], eax
jmp 0x48e876
push 0xb
push dword [0x5813e8]
call fcn.004561ef
push eax
push 9
push dword [0x5813c0]
call fcn.004561ef
push eax
push 8
lea esi, [esp + 4]
push esi
push 2
call fcn.0042fa34
jmp 0x48e876
mov eax, dword [ebp + 0x1c]
cmp eax, 0
je 0x48e734
mov eax, dword [ebp + 0x18]
cmp eax, 0
je 0x48e6fa
push dword [ebp + 8]
call fcn.0048b023
jmp 0x48e702
push dword [ebp + 8]
call fcn.0048af8d
mov dword [ebp - 0x24], eax
mov eax, dword [0x576df4]
cmp eax, 0
je 0x48e727
push dword [ebp - 0x24]
push dword [ebp + 8]
push dword [ebp + 8]
push dword [ebp + 0x10]
push 0x200
call fcn.0048b44b
mov eax, dword [ebp + 8]
add eax, 0x10
mov dword [ebp + 8], eax
jmp 0x48e785
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 0x48e74f
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.0048db4f
mov dword [ebp + 8], eax
mov eax, dword [0x576df4]
cmp eax, 0
je 0x48e785
mov eax, dword [0x576dcc]
mov dword [ebp - 0x24], eax
jmp 0x48e876
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 0x48e7b2
mov eax, dword [ebp - 0x24]
mov eax, dword [eax]
and eax, 0xff
cmp eax, 5
jne 0x48e7b2
jmp 0x48e7b6
xor eax, eax
jmp 0x48e7b9
xor eax, eax
inc eax
cmp eax, 0
je 0x48e82a
mov eax, dword [ebp + 8]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x34]
mov eax, dword [eax + 8]
push eax
call fcn.0044ebdc
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x40]
mov edx, dword [0x5707f4]
cmp eax, edx
je 0x48e7f6
mov eax, dword [ebp - 0x40]
mov edx, dword [0x5707f8]
cmp eax, edx
je 0x48e7f6
xor eax, eax
jmp 0x48e7f9
xor eax, eax
inc eax
cmp eax, 0
je 0x48e82a
push 0xe
push dword [0x5813e8]
call fcn.004561ef
push eax
push 9
push dword [0x5813c0]
call fcn.004561ef
push eax
push 8
lea esi, [esp + 4]
push esi
push 2
call fcn.0042fa34
mov eax, dword [ebp + 0x18]
cmp eax, 0
je 0x48e83e
push dword [ebp + 8]
call fcn.0048b023
jmp 0x48e846
push dword [ebp + 8]
call fcn.0048af8d
mov dword [ebp - 0x24], eax
mov eax, dword [0x576df4]
cmp eax, 0
je 0x48e86b
push dword [ebp - 0x24]
push dword [ebp + 8]
push dword [ebp + 8]
push dword [ebp + 0x10]
push 0x200
call fcn.0048b44b
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 0x48e893
call fcn.0048de6a
mov eax, dword [ebp - 0x44]
xor al, 1
cmp eax, 0
je 0x48e882
mov eax, dword [0x576df4]
cmp eax, 0
je 0x48e8ab
mov eax, dword [ebp - 0x48]
cmp eax, 0
je 0x48e8ab
jmp 0x48e8af
xor eax, eax
jmp 0x48e8b2
xor eax, eax
inc eax
cmp eax, 0
je 0x48e8cf
push dword [ebp - 0x24]
push dword [ebp - 0x2c]
push dword [ebp + 8]
push dword [ebp + 0x10]
push 0x8000
call fcn.0048b44b
mov eax, dword [ebp + 8]
leave
ret 0x18