Function at 0x101e5c20
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x1090
call fcn.102244a0
mov ecx, dword [0x107ab964]
push ebx
mov ebx, dword [esp + 0x1098]
push ebp
mov eax, dword [ecx]
push esi
push edi
push ebx
call dword [eax + 0x20]
mov esi, eax
test esi, esi
mov dword [esp + 0x14], esi
jle 0x101e60b3
mov ebp, dword [esp + 0x10a8]
mov ecx, 0x18
xor eax, eax
lea edi, [esp + 0x40]
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x40]
push ecx
mov ecx, ebp
call fcn.10002060
test eax, eax
je 0x101e60b3
mov ecx, 0xa
xor eax, eax
lea edi, [esp + 0x18]
lea edx, [esp + 0x18]
rep stosd dword es:[edi], eax
push edx
push 6
mov ecx, ebp
call fcn.10003900
test eax, eax
je 0x101e60b3
mov edx, dword [esp + 0x10ac]
lea eax, [esp + 0x10]
push 1
lea ecx, [esp + 0xa4]
push eax
mov eax, dword [0x107ab964]
push ecx
push 0x1000
push 0x1000
push edx
push esi
push ebx
push eax
call fcn.100253e0
add esp, 0x24
test eax, eax
je 0x101e60b3
cmp dword [esp + 0x10], 0x1000
jne 0x101e60b3
xor ecx, ecx
xor eax, eax
mov esi, 0x800
xor ebp, ebp
mov bl, 0xeb
mov edi, 0x810f
cmp ecx, 6
je 0x101e601a
test esi, esi
jbe 0x101e60b3
cmp esi, 0xff0
jae 0x101e60b3
cmp ecx, 5
ja case.default.0x101e5d19
jmp dword [ecx*4 + 0x101e62f4]
mov cl, byte [esp + esi + 0xa0]
cmp cl, bl
jne 0x101e5d43
inc esi
xor ecx, ecx
mov cl, byte [esp + esi + 0xa0]
lea esi, [esi + ecx + 1]
mov ecx, 1
jmp case.default.0x101e5d19
cmp cl, 0xe9
jne 0x101e60b3
mov edx, dword [esp + esi + 0xa1]
inc esi
mov ecx, 1
lea esi, [esi + edx + 4]
jmp case.default.0x101e5d19
mov cx, word [esp + esi + 0xa0]
cmp cx, 0xec89
jne 0x101e60b3
cmp word [esp + esi + 0xa2], di
jne 0x101e5d97
mov ecx, dword [esp + esi + 0xa4]
add esi, 4
lea esi, [esi + ecx + 4]
mov ecx, 2
jmp case.default.0x101e5d19
cmp cx, 0xec89
jne 0x101e60b3
cmp byte [esp + esi + 0xa2], 0xe9
jne 0x101e5dc4
mov edx, dword [esp + esi + 0xa3]
add esi, 3
mov ecx, 2
lea esi, [esi + edx + 4]
jmp case.default.0x101e5d19
cmp cx, 0xec89
jne 0x101e60b3
cmp byte [esp + esi + 0xa2], 0x71
jne 0x101e60b3
add esi, 3
xor ecx, ecx
mov cl, byte [esp + esi + 0xa0]
lea esi, [esi + ecx + 1]
mov ecx, 2
jmp case.default.0x101e5d19
mov cl, byte [esp + esi + 0xa0]
cmp cl, 0x5d
jne 0x101e60b3
cmp word [esp + esi + 0xa1], di
jne 0x101e5e29
mov edx, dword [esp + esi + 0xa3]
add esi, 3
mov ecx, 3
lea esi, [esi + edx + 4]
jmp case.default.0x101e5d19
cmp cl, 0x5d
jne 0x101e60b3
cmp byte [esp + esi + 0xa1], bl
jne 0x101e5e55
add esi, 2
xor ecx, ecx
mov cl, byte [esp + esi + 0xa0]
lea esi, [esi + ecx + 1]
mov ecx, 3
jmp case.default.0x101e5d19
cmp cl, 0x5d
jne 0x101e60b3
cmp byte [esp + esi + 0xa1], 0x71
jne 0x101e60b3
mov cl, byte [esp + esi + 0xa2]
add esi, 2
mov dl, cl
and dl, 0x80
cmp dl, 0x80
jne 0x101e5e9d
not cl
inc cl
mov edx, 1
and ecx, 0xff
sub edx, ecx
mov ecx, 3
add esi, edx
jmp case.default.0x101e5d19
and ecx, 0xff
lea esi, [esi + ecx + 1]
mov ecx, 3
jmp case.default.0x101e5d19
cmp word [esp + esi + 0xa0], di
jne 0x101e5ed3
mov ecx, dword [esp + esi + 0xa2]
add esi, 2
lea esi, [esi + ecx + 4]
mov ecx, 4
jmp case.default.0x101e5d19
mov cl, byte [esp + esi + 0xa0]
cmp cl, bl
jne 0x101e5ef6
inc esi
xor edx, edx
mov ecx, 4
mov dl, byte [esp + esi + 0xa0]
lea esi, [esi + edx + 1]
jmp case.default.0x101e5d19
cmp cl, 0x71
jne 0x101e60b3
inc esi
xor ecx, ecx
mov cl, byte [esp + esi + 0xa0]
lea esi, [esi + ecx + 1]
mov ecx, 4
jmp case.default.0x101e5d19
cmp byte [esp + esi + 0xa0], 0xbf
jne 0x101e60b3
mov eax, dword [esp + esi + 0xa1]
inc esi
add esi, 4
je 0x101e60b3
cmp esi, 0xff0
jae 0x101e60b3
mov cl, byte [esp + esi + 0xa0]
cmp cl, 0x71
jne 0x101e5f66
inc esi
xor edx, edx
mov ecx, 5
mov dl, byte [esp + esi + 0xa0]
lea esi, [esi + edx + 1]
jmp case.default.0x101e5d19
cmp cl, bl
jne 0x101e5f82
inc esi
xor ecx, ecx
mov cl, byte [esp + esi + 0xa0]
lea esi, [esi + ecx + 1]
mov ecx, 5
jmp case.default.0x101e5d19
cmp word [esp + esi + 0xa0], di
jne 0x101e5fa1
mov edx, dword [esp + esi + 0xa2]
add esi, 2
mov ecx, 5
lea esi, [esi + edx + 4]
jmp case.default.0x101e5d19
cmp cl, 0xe9
jne 0x101e5fb2
mov ecx, dword [esp + esi + 0xa1]
inc esi
lea esi, [esi + ecx + 4]
mov ecx, 5
jmp case.default.0x101e5d19
cmp word [esp + esi + 0xa0], 0xc781
jne 0x101e60b3
mov edx, dword [esp + esi + 0xa2]
mov ecx, dword [esp + 0x5c]
add esi, 2
sub edx, ecx
mov ecx, dword [esp + 0x10a8]
add eax, edx
push eax
call fcn.10004690
mov ecx, dword [esp + 0x2c]
cmp eax, ecx
jb 0x101e60b3
mov edx, dword [esp + 0x28]
add edx, ecx
cmp eax, edx
jae 0x101e60b3
mov ecx, 6
inc ebp
cmp ebp, 6
jl 0x101e5cf3
cmp ecx, 6
jne 0x101e60b3
cmp ebp, 6
jne 0x101e60b3
lea ecx, [esp + 0x10]
push 1
lea edx, [esp + 0xa4]
push ecx
mov ecx, dword [esp + 0x10ac]
push edx
mov edx, dword [0x107ab964]
push 0x1000
push 0x1000
push eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x28], 0
push eax
push ecx
push edx
call fcn.100253e0
add esp, 0x24
test eax, eax
je 0x101e60b3
cmp dword [esp + 0x10], 0x1000
jne 0x101e60b3
mov cl, byte [esp + 0xa3]
mov dl, byte [esp + 0xa2]
mov al, 1
mov bl, byte [esp + 0xa0]
xor bl, al
cmp bl, 0x55
jne 0x101e60ad
mov bl, byte [esp + 0xa1]
xor bl, al
cmp bl, 0x8b
jne 0x101e60ad
mov bl, dl
xor bl, al
cmp bl, 0xec
jne 0x101e60ad
mov bl, cl
xor bl, al
cmp bl, 0x81
je 0x101e60c0
inc al
cmp al, 0xff
jb 0x101e607f
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x1090
ret
xor ecx, ecx
mov bl, byte [esp + ecx + 0xa0]
xor bl, al
mov byte [esp + ecx + 0xa0], bl
inc ecx
cmp ecx, 0x1000
jb 0x101e60c2
xor edx, edx
xor eax, eax
mov edi, 0x558b
mov esi, 0x458b
mov bl, 0x75
mov ebp, 0x128b
cmp edx, 2
je 0x101e62d9
mov ecx, edx
sub ecx, 0
je 0x101e6243
dec ecx
jne 0x101e62c0
cmp word [esp + eax + 0xa0], di
jne 0x101e62c0
cmp dword [esp + eax + 0xa3], 0x8901c283
jne 0x101e62c0
cmp byte [esp + eax + 0xa7], 0x55
jne 0x101e62c0
cmp word [esp + eax + 0xa9], si
jne 0x101e62c0
cmp word [esp + eax + 0xac], 0x4503
jne 0x101e62c0
cmp dword [esp + eax + 0xaf], 0xba883881
jne 0x101e62c0
cmp word [esp + eax + 0xb3], 0x70c5
jne 0x101e62c0
cmp byte [esp + eax + 0xb5], bl
jne 0x101e62c0
cmp word [esp + eax + 0xb7], 0x7d83
jne 0x101e62c0
cmp word [esp + eax + 0xba], 0x7500
jne 0x101e62c0
cmp word [esp + eax + 0xbd], 0x4d8b
jne 0x101e62c0
cmp dword [esp + eax + 0xc0], 0x8901c183
jne 0x101e62c0
cmp byte [esp + eax + 0xc4], 0x4d
jne 0x101e62c0
cmp byte [esp + eax + 0xc6], 0xeb
jne 0x101e62c0
cmp word [esp + eax + 0xc8], di
jne 0x101e62c0
cmp word [esp + eax + 0xcb], si
jne 0x101e62c0
cmp word [esp + eax + 0xce], 0x4c8d
jne 0x101e62c0
cmp byte [esp + eax + 0xd0], 0x10
jne 0x101e62c0
cmp word [esp + eax + 0xd2], 0x8d89
jne 0x101e62c0
cmp dword [esp + eax + 0xd8], 0xc4eb02eb
jne 0x101e62c0
mov edx, 2
jmp 0x101e62c0
cmp dword [esp + eax + 0xa0], 0x3359186a
jne 0x101e62c0
cmp dword [esp + eax + 0xa4], 0xacc033ff
jne 0x101e62c0
cmp dword [esp + eax + 0xa8], 0x27c613c
jne 0x101e62c0
cmp dword [esp + eax + 0xac], 0xcfc1202c
jne 0x101e62c0
cmp dword [esp + eax + 0xb0], 0xe2f8030d
jne 0x101e62c0
cmp dword [esp + eax + 0xb4], 0x5bff81f0
jne 0x101e62c0
cmp dword [esp + eax + 0xb8], 0x8b6a4abc
jne 0x101e62c0
cmp byte [esp + eax + 0xbc], 0x5a
jne 0x101e62c0
cmp word [esp + eax + 0xbe], bp
jne 0x101e62c0
cmp byte [esp + eax + 0xc0], bl
jne 0x101e62c0
mov edx, 1
inc eax
cmp eax, 0xfbe
jb 0x101e60f0
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x1090
ret
cmp eax, 0xfbe
jae 0x101e60b3
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x1090
ret