Function at 0x4e1300
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5e9d96
mov eax, dword fs:[0]
push eax
sub esp, 0x1a8
mov eax, dword [0x653ea8]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov eax, dword [ebp + 8]
lea ecx, [ebp - 0x188]
mov dword [ebp - 0x18c], eax
call fcn.004a5000
lea ecx, [ebp - 0x1ac]
mov dword [ebp - 4], 0
call fcn.004a7d50
push 0
push 0
push 0
lea eax, [ebp - 0x190]
mov byte [ebp - 4], 1
push eax
lea eax, [esi + 0x259]
push eax
lea ecx, [ebp - 0x188]
call fcn.004a5210
push 0
test eax, eax
jne 0x4e1528
push 0x43
call fcn.00407200
push 1
push 0x61
mov byte [ebp - 0x34], al
call fcn.00407200
push 2
push 0x6e
mov byte [ebp - 0x33], al
call fcn.00407200
push 3
push 0x6e
mov byte [ebp - 0x32], al
call fcn.00407200
push 4
push 0x6f
mov byte [ebp - 0x31], al
call fcn.00407200
push 5
push 0x74
mov byte [ebp - 0x30], al
call fcn.00407200
push 6
push 0x20
mov byte [ebp - 0x2f], al
call fcn.00407200
push 7
push 0x6f
mov byte [ebp - 0x2e], al
call fcn.00407200
add esp, 0x40
mov byte [ebp - 0x2d], al
push 8
push 0x70
call fcn.00407200
push 9
push 0x65
mov byte [ebp - 0x2c], al
call fcn.00407200
push 0xa
push 0x6e
mov byte [ebp - 0x2b], al
call fcn.00407200
push 0xb
push 0x20
mov byte [ebp - 0x2a], al
call fcn.00407200
push 0xc
push 0x70
mov byte [ebp - 0x29], al
call fcn.00407200
push 0xd
push 0x61
mov byte [ebp - 0x28], al
call fcn.00407200
push 0xe
push 0x63
mov byte [ebp - 0x27], al
call fcn.00407200
push 0xf
push 0x6b
mov byte [ebp - 0x26], al
call fcn.00407200
add esp, 0x40
mov byte [ebp - 0x25], al
push 0x10
push 0x20
call fcn.00407200
push 0x11
push 0x69
mov byte [ebp - 0x24], al
call fcn.00407200
push 0x12
push 0x6e
mov byte [ebp - 0x23], al
call fcn.00407200
push 0x13
push 0x64
mov byte [ebp - 0x22], al
call fcn.00407200
mov byte [ebp - 0x21], al
push 0x14
push 0x65
call fcn.00407200
push 0x15
push 0x78
mov byte [ebp - 0x20], al
call fcn.00407200
push 0x16
push 0x20
mov byte [ebp - 0x1f], al
call fcn.00407200
push 0x17
push 0x66
mov byte [ebp - 0x1e], al
call fcn.00407200
add esp, 0x40
mov byte [ebp - 0x1d], al
push 0x18
push 0x69
call fcn.00407200
push 0x19
push 0x6c
mov byte [ebp - 0x1c], al
call fcn.00407200
push 0x1a
push 0x65
mov byte [ebp - 0x1b], al
call fcn.00407200
push 0x1b
push 0x21
mov byte [ebp - 0x1a], al
call fcn.00407200
push 0x1c
push 0x20
mov byte [ebp - 0x19], al
call fcn.00407200
push 0x1d
push 0x25
mov byte [ebp - 0x18], al
call fcn.00407200
push 0x1e
push 0x73
mov byte [ebp - 0x17], al
call fcn.00407200
add esp, 0x38
mov byte [ebp - 0x16], al
mov byte [ebp - 0x15], 0
xor ecx, ecx
mov al, cl
add al, 0x30
xor byte [ebp + ecx - 0x34], al
inc ecx
cmp ecx, 0x1f
jb 0x4e1507
lea eax, [esi + 0x159]
mov byte [ebp - 0x15], 0
push eax
lea eax, [ebp - 0x34]
jmp 0x4e1e3c
lea ecx, [ebp - 0x188]
call fcn.004a5540
cmp eax, 0xc
jae 0x4e16e3
push 0
push 0x50
call fcn.00407200
push 1
push 0x61
mov byte [ebp - 0x34], al
call fcn.00407200
push 2
push 0x63
mov byte [ebp - 0x33], al
call fcn.00407200
push 3
push 0x6b
mov byte [ebp - 0x32], al
call fcn.00407200
push 4
push 0x20
mov byte [ebp - 0x31], al
call fcn.00407200
push 5
push 0x69
mov byte [ebp - 0x30], al
call fcn.00407200
push 6
push 0x6e
mov byte [ebp - 0x2f], al
call fcn.00407200
push 7
push 0x64
mov byte [ebp - 0x2e], al
call fcn.00407200
add esp, 0x40
mov byte [ebp - 0x2d], al
push 8
push 0x65
call fcn.00407200
push 9
push 0x78
mov byte [ebp - 0x2c], al
call fcn.00407200
push 0xa
push 0x20
mov byte [ebp - 0x2b], al
call fcn.00407200
push 0xb
push 0x66
mov byte [ebp - 0x2a], al
call fcn.00407200
push 0xc
push 0x69
mov byte [ebp - 0x29], al
call fcn.00407200
push 0xd
push 0x6c
mov byte [ebp - 0x28], al
call fcn.00407200
push 0xe
push 0x65
mov byte [ebp - 0x27], al
call fcn.00407200
push 0xf
push 0x20
mov byte [ebp - 0x26], al
call fcn.00407200
add esp, 0x40
mov byte [ebp - 0x25], al
push 0x10
push 0x68
call fcn.00407200
push 0x11
push 0x65
mov byte [ebp - 0x24], al
call fcn.00407200
push 0x12
push 0x61
mov byte [ebp - 0x23], al
call fcn.00407200
push 0x13
push 0x64
mov byte [ebp - 0x22], al
call fcn.00407200
push 0x14
push 0x65
mov byte [ebp - 0x21], al
call fcn.00407200
push 0x15
push 0x72
mov byte [ebp - 0x20], al
call fcn.00407200
push 0x16
push 0x20
mov byte [ebp - 0x1f], al
call fcn.00407200
push 0x17
push 0x65
mov byte [ebp - 0x1e], al
call fcn.00407200
add esp, 0x40
mov byte [ebp - 0x1d], al
push 0x18
push 0x72
call fcn.00407200
push 0x19
push 0x72
mov byte [ebp - 0x1c], al
call fcn.00407200
push 0x1a
push 0x6f
mov byte [ebp - 0x1b], al
call fcn.00407200
push 0x1b
push 0x72
mov byte [ebp - 0x1a], al
call fcn.00407200
push 0x1c
push 0x21
mov byte [ebp - 0x19], al
call fcn.00407200
push 0x1d
push 0x20
mov byte [ebp - 0x18], al
call fcn.00407200
push 0x1e
push 0x25
mov byte [ebp - 0x17], al
call fcn.00407200
push 0x1f
push 0x73
mov byte [ebp - 0x16], al
call fcn.00407200
add esp, 0x40
mov byte [ebp - 0x15], al
mov byte [ebp - 0x14], 0
xor ecx, ecx
nop
mov al, cl
add al, 0x30
xor byte [ebp + ecx - 0x34], al
inc ecx
cmp ecx, 0x20
jb 0x4e16d0
jmp 0x4e1e2e
mov edi, dword [ebp - 0x190]
mov eax, dword [edi]
cmp eax, 0x444b5045
jne 0x4e1701
push 0
lea ecx, [ebp - 0x188]
call fcn.004a5540
jmp 0x4e175b
cmp eax, dword [0x6526c0]
jne 0x4e1c8d
push 2
push 0x69dc20
push edi
lea eax, [ebp - 0x1ac]
mov byte [esi + 0x158], 1
mov ecx, dword [0x6dc0f8]
push eax
call fcn.004a8030
test al, al
je 0x4e1e45
lea ecx, [ebp - 0x1ac]
call fcn.004a83e0
cmp eax, 0xc
jb 0x4e1e45
mov edi, dword [ebp - 0x1ac]
lea ecx, [ebp - 0x1ac]
call fcn.004a83e0
cmp dword [edi + 4], 2
mov ecx, eax
je 0x4e1929
push 0
push 0x50
call fcn.00407200
push 1
push 0x61
mov byte [ebp - 0x34], al
call fcn.00407200
push 2
push 0x63
mov byte [ebp - 0x33], al
call fcn.00407200
push 3
push 0x6b
mov byte [ebp - 0x32], al
call fcn.00407200
push 4
push 0x20
mov byte [ebp - 0x31], al
call fcn.00407200
push 5
push 0x69
mov byte [ebp - 0x30], al
call fcn.00407200
push 6
push 0x6e
mov byte [ebp - 0x2f], al
call fcn.00407200
push 7
push 0x64
mov byte [ebp - 0x2e], al
call fcn.00407200
add esp, 0x40
mov byte [ebp - 0x2d], al
push 8
push 0x65
call fcn.00407200
push 9
push 0x78
mov byte [ebp - 0x2c], al
call fcn.00407200
push 0xa
push 0x20
mov byte [ebp - 0x2b], al
call fcn.00407200
push 0xb
push 0x66
mov byte [ebp - 0x2a], al
call fcn.00407200
push 0xc
push 0x69
mov byte [ebp - 0x29], al
call fcn.00407200
push 0xd
push 0x6c
mov byte [ebp - 0x28], al
call fcn.00407200
push 0xe
push 0x65
mov byte [ebp - 0x27], al
call fcn.00407200
push 0xf
push 0x20
mov byte [ebp - 0x26], al
call fcn.00407200
add esp, 0x40
mov byte [ebp - 0x25], al
push 0x10
push 0x76
call fcn.00407200
push 0x11
push 0x65
mov byte [ebp - 0x24], al
call fcn.00407200
push 0x12
push 0x72
mov byte [ebp - 0x23], al
call fcn.00407200
push 0x13
push 0x73
mov byte [ebp - 0x22], al
call fcn.00407200
push 0x14
push 0x69
mov byte [ebp - 0x21], al
call fcn.00407200
push 0x15
push 0x6f
mov byte [ebp - 0x20], al
call fcn.00407200
push 0x16
push 0x6e
mov byte [ebp - 0x1f], al
call fcn.00407200
push 0x17
push 0x20
mov byte [ebp - 0x1e], al
call fcn.00407200
add esp, 0x40
mov byte [ebp - 0x1d], al
push 0x18
push 0x65
call fcn.00407200
push 0x19
push 0x72
mov byte [ebp - 0x1c], al
call fcn.00407200
push 0x1a
push 0x72
mov byte [ebp - 0x1b], al
call fcn.00407200
push 0x1b
push 0x6f
mov byte [ebp - 0x1a], al
call fcn.00407200
push 0x1c
push 0x72
mov byte [ebp - 0x19], al
call fcn.00407200
push 0x1d
push 0x21
mov byte [ebp - 0x18], al
call fcn.00407200
push 0x1e
push 0x20
mov byte [ebp - 0x17], al
call fcn.00407200
push 0x1f
push 0x25
mov byte [ebp - 0x16], al
call fcn.00407200
add esp, 0x40
mov byte [ebp - 0x15], al
push 0x20
push 0x73
call fcn.00407200
add esp, 8
mov byte [ebp - 0x14], al
mov byte [ebp - 0x13], 0
xor ecx, ecx
mov al, cl
add al, 0x30
xor byte [ebp + ecx - 0x34], al
inc ecx
cmp ecx, 0x21
jb 0x4e1908
lea eax, [esi + 0x159]
mov byte [ebp - 0x13], 0
push eax
lea eax, [ebp - 0x34]
jmp 0x4e1e3c
mov edx, dword [edi + 8]
add edi, 0xc
mov dword [esi + 0x154], edx
lea eax, [edx + edx*2]
shl eax, 6
add eax, 0xc
cmp ecx, eax
jae 0x4e1bb0
push 0
push 0x50
call fcn.00407200
push 1
push 0x61
mov byte [ebp - 0x40], al
call fcn.00407200
push 2
push 0x63
mov byte [ebp - 0x3f], al
call fcn.00407200
push 3
push 0x6b
mov byte [ebp - 0x3e], al
call fcn.00407200
push 4
push 0x20
mov byte [ebp - 0x3d], al
call fcn.00407200
push 5
push 0x69
mov byte [ebp - 0x3c], al
call fcn.00407200
push 6
push 0x6e
mov byte [ebp - 0x3b], al
call fcn.00407200
push 7
push 0x64
mov byte [ebp - 0x3a], al
call fcn.00407200
add esp, 0x40
mov byte [ebp - 0x39], al
push 8
push 0x65
call fcn.00407200
push 9
push 0x78
mov byte [ebp - 0x38], al
call fcn.00407200
push 0xa
push 0x20
mov byte [ebp - 0x37], al
call fcn.00407200
push 0xb
push 0x66
mov byte [ebp - 0x36], al
call fcn.00407200
push 0xc
push 0x69
mov byte [ebp - 0x35], al
call fcn.00407200
push 0xd
push 0x6c
mov byte [ebp - 0x34], al
call fcn.00407200
push 0xe
push 0x65
mov byte [ebp - 0x33], al
call fcn.00407200
push 0xf
push 0x20
mov byte [ebp - 0x32], al
call fcn.00407200
add esp, 0x40
mov byte [ebp - 0x31], al
push 0x10
push 0x73
call fcn.00407200
push 0x11
push 0x69
mov byte [ebp - 0x30], al
call fcn.00407200
push 0x12
push 0x7a
mov byte [ebp - 0x2f], al
call fcn.00407200
push 0x13
push 0x65
mov byte [ebp - 0x2e], al
call fcn.00407200
push 0x14
push 0x20
mov byte [ebp - 0x2d], al
call fcn.00407200
push 0x15
push 0x65
mov byte [ebp - 0x2c], al
call fcn.00407200
push 0x16
push 0x72
mov byte [ebp - 0x2b], al
call fcn.00407200
push 0x17
push 0x72
mov byte [ebp - 0x2a], al
call fcn.00407200
add esp, 0x40
mov byte [ebp - 0x29], al
push 0x18
push 0x6f
call fcn.00407200
push 0x19
push 0x72
mov byte [ebp - 0x28], al
call fcn.00407200
push 0x1a
push 0x21
mov byte [ebp - 0x27], al
call fcn.00407200
push 0x1b
push 0x20
mov byte [ebp - 0x26], al
call fcn.00407200
push 0x1c
push 0x25
mov byte [ebp - 0x25], al
call fcn.00407200
push 0x1d
push 0x73
mov byte [ebp - 0x24], al
call fcn.00407200
push 0x1e
push 0x2c
mov byte [ebp - 0x23], al
call fcn.00407200
push 0x1f
push 0x20
mov byte [ebp - 0x22], al
call fcn.00407200
add esp, 0x40
mov byte [ebp - 0x21], al
push 0x20
push 0x69
call fcn.00407200
push 0x21
push 0x6e
mov byte [ebp - 0x20], al
call fcn.00407200
push 0x22
push 0x64
mov byte [ebp - 0x1f], al
call fcn.00407200
push 0x23
push 0x65
mov byte [ebp - 0x1e], al
call fcn.00407200
push 0x24
push 0x78
mov byte [ebp - 0x1d], al
call fcn.00407200
push 0x25
push 0x43
mov byte [ebp - 0x1c], al
call fcn.00407200
push 0x26
push 0x6f
mov byte [ebp - 0x1b], al
call fcn.00407200
push 0x27
mov byte [ebp - 0x1a], al
push 0x75
call fcn.00407200
add esp, 0x40
mov byte [ebp - 0x19], al
push 0x28
push 0x6e
call fcn.00407200
push 0x29
push 0x74
mov byte [ebp - 0x18], al
call fcn.00407200
push 0x2a
push 0x20
mov byte [ebp - 0x17], al
call fcn.00407200
push 0x2b
push 0x25
mov byte [ebp - 0x16], al
call fcn.00407200
push 0x2c
push 0x64
mov byte [ebp - 0x15], al
call fcn.00407200
add esp, 0x28
mov byte [ebp - 0x14], al
mov byte [ebp - 0x13], 0
xor ecx, ecx
nop word [eax + eax]
mov al, cl
add al, 0x30
xor byte [ebp + ecx - 0x40], al
inc ecx
cmp ecx, 0x2d
jb 0x4e1b80
push dword [esi + 0x154]
lea eax, [esi + 0x159]
mov byte [ebp - 0x13], 0
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.004a4cc0
add esp, 0xc
jmp 0x4e1e45
xor ecx, ecx
mov eax, edx
mov edx, 0xc0
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00553626
mov ecx, dword [esi + 0x154]
mov dword [esi + 0x360], eax
lea ecx, [ecx + ecx*2]
shl ecx, 6
push ecx
push edi
push eax
call fcn.0057a460
mov edi, dword [esi + 0x360]
xor ebx, ebx
add esp, 0x10
cmp dword [esi + 0x154], ebx
jle 0x4e1c86
nop dword [eax]
mov ecx, dword [edi + 0xa8]
test ecx, ecx
jne 0x4e1c15
push ecx
push edi
mov ecx, esi
call fcn.004e0d20
jmp 0x4e1c73
mov eax, dword [edi + 0xac]
mov edx, dword [edi + 0xb0]
cmp eax, edx
jle 0x4e1c33
sub eax, edx
add dword [esi + 0x364], eax
mov ecx, dword [edi + 0xa8]
lea eax, [ebp - 0x198]
mov dword [ebp - 0x198], ecx
push eax
push eax
lea eax, [ebp - 0x1b4]
mov dword [ebp - 0x194], edi
push eax
lea ecx, [esi + 0x384]
call fcn.004dc180
cmp byte [ebp + 0xc], 0
mov ecx, dword [ebp - 0x18c]
push edi
push esi
je 0x4e1c6e
call fcn.004e0ff0
jmp 0x4e1c73
call fcn.004e09d0
inc ebx
add edi, 0xc0
cmp ebx, dword [esi + 0x154]
jl 0x4e1c00
mov bl, 1
jmp 0x4e1e47
push 0
push 0x50
call fcn.00407200
push 1
push 0x61
mov byte [ebp - 0x34], al
call fcn.00407200
push 2
push 0x63
mov byte [ebp - 0x33], al
call fcn.00407200
push 3
push 0x6b
mov byte [ebp - 0x32], al
call fcn.00407200
push 4
push 0x20
mov byte [ebp - 0x31], al
call fcn.00407200
push 5
push 0x69
mov byte [ebp - 0x30], al
call fcn.00407200
push 6
push 0x6e
mov byte [ebp - 0x2f], al
call fcn.00407200
push 7
push 0x64
mov byte [ebp - 0x2e], al
call fcn.00407200
add esp, 0x40
mov byte [ebp - 0x2d], al
push 8
push 0x65
call fcn.00407200
push 9
push 0x78
mov byte [ebp - 0x2c], al
call fcn.00407200
push 0xa
push 0x20
mov byte [ebp - 0x2b], al
call fcn.00407200
push 0xb
push 0x66
mov byte [ebp - 0x2a], al
call fcn.00407200
push 0xc
push 0x69
mov byte [ebp - 0x29], al
call fcn.00407200
push 0xd
push 0x6c
mov byte [ebp - 0x28], al
call fcn.00407200
push 0xe
push 0x65
mov byte [ebp - 0x27], al
call fcn.00407200
push 0xf
push 0x20
mov byte [ebp - 0x26], al
call fcn.00407200
add esp, 0x40
mov byte [ebp - 0x25], al
push 0x10
push 0x66
call fcn.00407200
push 0x11
push 0x6f
mov byte [ebp - 0x24], al
call fcn.00407200
push 0x12
push 0x75
mov byte [ebp - 0x23], al
call fcn.00407200
push 0x13
push 0x72
mov byte [ebp - 0x22], al
call fcn.00407200
push 0x14
push 0x63
mov byte [ebp - 0x21], al
call fcn.00407200
push 0x15
push 0x63
mov byte [ebp - 0x20], al
call fcn.00407200
push 0x16
push 0x20
mov byte [ebp - 0x1f], al
call fcn.00407200
push 0x17
push 0x65
mov byte [ebp - 0x1e], al
call fcn.00407200
add esp, 0x40
mov byte [ebp - 0x1d], al
push 0x18
push 0x72
call fcn.00407200
push 0x19
push 0x72
mov byte [ebp - 0x1c], al
call fcn.00407200
push 0x1a
push 0x6f
mov byte [ebp - 0x1b], al
call fcn.00407200
push 0x1b
push 0x72
mov byte [ebp - 0x1a], al
call fcn.00407200
push 0x1c
push 0x21
mov byte [ebp - 0x19], al
call fcn.00407200
push 0x1d
push 0x20
mov byte [ebp - 0x18], al
call fcn.00407200
push 0x1e
push 0x25
mov byte [ebp - 0x17], al
call fcn.00407200
push 0x1f
push 0x73
mov byte [ebp - 0x16], al
call fcn.00407200
add esp, 0x40
mov byte [ebp - 0x15], al
mov byte [ebp - 0x14], 0
xor ecx, ecx
nop
mov al, cl
add al, 0x30
xor byte [ebp + ecx - 0x34], al
inc ecx
cmp ecx, 0x20
jb 0x4e1e20
lea eax, [esi + 0x159]
mov byte [ebp - 0x14], 0
push eax
lea eax, [ebp - 0x34]
push eax
call fcn.004a4cc0
add esp, 8
xor bl, bl
lea ecx, [ebp - 0x1ac]
call fcn.004a7dc0
lea ecx, [ebp - 0x188]
call fcn.004a5090
mov al, bl
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00553607
mov esp, ebp
pop ebp
ret 0xc