Function at 0x101fdd70
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x103280ec
mov eax, dword fs:[0]
push eax
sub esp, 0x1bc
mov eax, dword [0x1043900c]
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 eax, ecx
mov dword [ebp - 0x1b8], eax
xor ebx, ebx
mov dword [ebp - 0x1c0], ebx
mov dword [ebp - 0x1bc], ebx
test eax, eax
je 0x101fe0df
call fcn.100c9d50
mov edx, dword [0x1060b288]
lea esi, [ebp - 0x1b0]
push esi
mov ecx, dword [eax]
mov eax, dword [edx]
push ecx
mov ecx, edx
mov eax, dword [eax + 0x20]
call eax
test al, al
je 0x101fe0df
mov eax, dword fs:[0x2c]
mov ecx, dword [0x104c14e0]
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x10611858]
mov dword [ebp - 0x1c4], ecx
cmp eax, dword [ecx + 4]
jg 0x101fe0fb
mov edi, dword [ebp - 0x1b8]
add edi, dword [0x1061190c]
push 0x13a4
mov dword [ebp - 0x1b4], edi
call fcn.10027ba0
mov edx, dword [edi]
mov esi, eax
mov dword [ebp - 0x1bc], esi
cmp edx, 0xffffffff
jne 0x101fde37
xor ebx, ebx
jmp 0x101fde49
mov ecx, dword [0x1060b274]
push edx
mov eax, dword [ecx]
call dword [eax + 0x10]
mov ebx, eax
test ebx, ebx
jne 0x101fde6e
mov edx, dword [0x1061119c]
cmp edx, 0xffffffff
je 0x101fde6e
mov ecx, dword [0x1060b274]
push edx
mov eax, dword [ecx]
call dword [eax + 0x10]
test eax, eax
je 0x101fde6e
mov ecx, dword [0x1061119c]
mov ebx, eax
mov dword [edi], ecx
mov edx, dword [ebp - 0x1b8]
cmp byte [edx + 0x25f], 0
je 0x101fdea6
test ebx, ebx
je 0x101fe0df
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x10]
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0x34]
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x10]
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 4]
jmp 0x101fe0df
test esi, esi
je 0x101fdf23
cmp dword [esi + 0x40], 0
je 0x101fdf23
test ebx, ebx
jne 0x101fdefe
mov ecx, dword [0x1060b274]
mov eax, dword [ecx]
call dword [eax + 0x18]
lea edi, [eax + 1]
call dword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_rand]
mov esi, eax
and esi, 0x80000fff
jns 0x101fdeda
dec esi
or esi, 0xfffff000
inc esi
mov edx, esi
mov ecx, edi
call fcn.101fda60
mov ebx, eax
shl esi, 0x10
mov eax, dword [ebp - 0x1b4]
or esi, edi
mov dword [0x1061119c], esi
mov dword [eax], esi
mov esi, dword [ebp - 0x1bc]
mov ecx, ebx
call fcn.100c9d50
mov edx, esi
mov ecx, ebx
mov dword [eax], 0xffffffff
push dword [ebp - 0x1a8]
call fcn.101fcb00
mov edx, dword [ebp - 0x1b8]
add esp, 4
mov dword [ebp - 4], 3
xor esi, esi
mov eax, dword [ebp - 0x1c0]
xor ebx, ebx
or eax, 0x10
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], esi
xor edi, edi
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x1bc], eax
nop dword [eax]
mov ecx, dword [0x1060b274]
push dword [edx + edi*4 + 0x2df8]
mov eax, dword [ecx]
call dword [eax + 0x10]
test eax, eax
je 0x101fdf90
mov dword [ebp - 0x1b4], eax
cmp esi, ebx
je 0x101fdf7a
mov dword [esi], eax
add esi, 4
mov dword [ebp - 0x18], esi
jmp 0x101fdf90
lea eax, [ebp - 0x1b4]
push eax
push esi
lea ecx, [ebp - 0x1c]
call fcn.100e2350
mov ebx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x18]
mov edx, dword [ebp - 0x1b8]
inc edi
cmp edi, 0x40
jl 0x101fdf50
mov edi, dword [ebp - 0x1c]
cmp edi, esi
je 0x101fe012
mov eax, dword [edi]
mov ecx, eax
mov dword [ebp - 0x1b4], eax
call fcn.100cfe70
mov ebx, eax
mov eax, 0x1f4
movzx ecx, word [ebx]
movsx edx, cx
cmp cx, ax
jl 0x101fdfd0
mov eax, 0x13a3
cmp cx, ax
jl 0x101fdfdc
jmp 0x101fdfe1
cmp cx, 0x3b
je 0x101fdfdc
cmp cx, 0x2a
jne 0x101fdfe1
mov edx, 0x2a
push edx
call fcn.10027ba0
test eax, eax
je 0x101fe003
push dword [ebp - 0x1a8]
mov ecx, dword [ebp - 0x1b4]
mov edx, eax
call fcn.101fcb00
add esp, 4
jmp 0x101fe00b
movsx ecx, word [ebx]
call fcn.101fca40
add edi, 4
cmp edi, esi
jne 0x101fdfa3
lea ecx, [ebp - 0x1c]
mov dword [ebp - 4], 0xffffffff
call fcn.10019b70
mov ecx, dword [ebp - 0x1b8]
call fcn.100cb1b0
mov ebx, eax
mov dword [ebp - 0x1bc], ebx
test ebx, ebx
je 0x101fe0df
mov ecx, ebx
call fcn.100cb920
cmp eax, 0xffffffff
je 0x101fe0df
mov ecx, dword [0x1060b274]
push eax
mov edx, dword [ecx]
call dword [edx + 0x10]
mov dword [ebp - 0x1c0], eax
test eax, eax
je 0x101fe0df
mov ecx, eax
call fcn.100ce1f0
mov ecx, eax
call fcn.100bcec0
mov esi, eax
mov dword [ebp - 0x1b4], esi
test esi, esi
je 0x101fe0df
mov eax, dword [ebp - 0x1c4]
mov ecx, dword [0x1061175c]
cmp ecx, dword [eax + 4]
jg 0x101fe27c
mov eax, dword [0x1061176c]
mov edx, dword [ebp - 0x1c0]
mov edx, dword [eax + edx]
cmp edx, 0xffffffff
je 0x101fe0df
mov ecx, dword [0x1060b274]
push edx
mov eax, dword [ecx]
call dword [eax + 0x10]
mov edi, eax
test edi, edi
je 0x101fe0df
mov ecx, dword [0x1060b2a4]
push dword [esi]
mov edx, dword [ecx]
mov edx, dword [edx + 8]
call edx
mov ecx, ebx
mov esi, eax
call fcn.100cc510
mov ecx, edi
mov dword [eax], esi
call fcn.100cc510
lea ecx, [esi + 1]
mov dword [eax], ecx
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.102bb91c
mov esp, ebp
pop ebp
ret
push 0x10611858
call fcn.102bba07
add esp, 4
cmp dword [0x10611858], 0xffffffff
jne 0x101fde08
mov dword [ebp - 4], 0
cmp byte [0x104aa330], 0
jne 0x101fe189
mov byte [0x104aa330], 1
xor esi, esi
jmp 0x101fe130
xor edx, edx
mov ebx, esi
xor edx, dword [0x104aa344]
xor ebx, dword [0x104aa340]
xor edx, 0xd28f2c5
xor ebx, 0x1de26cd5
mov ecx, edx
mov eax, ebx
shld ecx, eax, 0xd
xor edx, ecx
shl eax, 0xd
xor ebx, eax
mov ecx, edx
mov eax, ebx
shrd eax, ecx, 7
shr ecx, 7
xor ebx, eax
xor edx, ecx
mov ecx, ebx
shld edx, ecx, 0x11
shl ecx, 0x11
xor cl, bl
xor cl, byte [esi + 0x104aa331]
mov byte [esi + 0x104aa331], cl
inc esi
cmp esi, 0xf
jb 0x101fe130
jmp 0x101fe189
push ecx
push 0x104aa33f
push 0x104aa331
lea ecx, [ebp - 0x40]
call fcn.1001a620
mov byte [ebp - 4], 1
lea edi, [ebp - 0x40]
cmp dword [ebp - 0x2c], 0x10
cmovae edi, dword [ebp - 0x40]
cmp byte [0x104a9bb0], 0
jne 0x101fe219
mov byte [0x104a9bb0], 1
xor esi, esi
jmp 0x101fe1c0
xor edx, edx
mov ebx, esi
xor edx, dword [0x104a9bcc]
xor ebx, dword [0x104a9bc8]
xor edx, 0xd28f2c5
xor ebx, 0x1de26cd5
mov ecx, edx
mov eax, ebx
shld ecx, eax, 0xd
xor edx, ecx
shl eax, 0xd
xor ebx, eax
mov ecx, edx
mov eax, ebx
shrd eax, ecx, 7
shr ecx, 7
xor ebx, eax
xor edx, ecx
mov ecx, ebx
shld edx, ecx, 0x11
shl ecx, 0x11
xor cl, byte [esi + 0x104a9bb1]
xor cl, bl
mov byte [esi + 0x104a9bb1], cl
inc esi
cmp esi, 0x17
jb 0x101fe1c0
jmp 0x101fe219
push ecx
push 0x104a9bc7
push 0x104a9bb1
lea ecx, [ebp - 0x28]
call fcn.1001a620
mov dword [ebp - 0x1c0], 0xf
mov byte [ebp - 4], 2
lea eax, [ebp - 0x28]
cmp dword [ebp - 0x14], 0x10
push 0
cmovae eax, dword [ebp - 0x28]
push edi
push eax
call fcn.10171b70
lea ecx, [ebp - 0x28]
mov dword [0x1061190c], eax
call fcn.10019dd0
lea ecx, [ebp - 0x40]
call fcn.10019dd0
push 0x10611858
mov dword [ebp - 4], 0xffffffff
call fcn.102bb9b6
add esp, 4
jmp 0x101fde08
push 0x1061175c
call fcn.102bba07
add esp, 4
cmp dword [0x1061175c], 0xffffffff
jne 0x101fe094
mov dword [ebp - 4], 4
cmp byte [0x104ac310], 0
jne 0x101fe30a
mov byte [0x104ac310], 1
xor esi, esi
jmp 0x101fe2b1
xor edx, edx
mov ebx, esi
xor edx, dword [0x104ac32c]
xor ebx, dword [0x104ac328]
xor edx, 0xd28f2c5
xor ebx, 0x1de26cd5
mov ecx, edx
mov eax, ebx
shld ecx, eax, 0xd
xor edx, ecx
shl eax, 0xd
xor ebx, eax
mov ecx, edx
mov eax, ebx
shrd eax, ecx, 7
shr ecx, 7
xor ebx, eax
xor edx, ecx
mov ecx, ebx
shld edx, ecx, 0x11
shl ecx, 0x11
xor cl, byte [esi + 0x104ac311]
xor cl, bl
mov byte [esi + 0x104ac311], cl
inc esi
cmp esi, 0x14
jb 0x101fe2b1
jmp 0x101fe30a
push ecx
push 0x104ac324
push 0x104ac311
lea ecx, [ebp - 0x58]
call fcn.1001a620
mov byte [ebp - 4], 5
lea edi, [ebp - 0x58]
cmp dword [ebp - 0x44], 0x10
cmovae edi, dword [ebp - 0x58]
cmp byte [0x104ab870], 0
jne 0x101fe399
mov byte [0x104ab870], 1
xor esi, esi
jmp 0x101fe340
xor edx, edx
mov ebx, esi
xor edx, dword [0x104ab88c]
xor ebx, dword [0x104ab888]
xor edx, 0xd28f2c5
xor ebx, 0x1de26cd5
mov ecx, edx
mov eax, ebx
shld ecx, eax, 0xd
xor edx, ecx
shl eax, 0xd
xor ebx, eax
mov ecx, edx
mov eax, ebx
shrd eax, ecx, 7
shr ecx, 7
xor ebx, eax
xor edx, ecx
mov ecx, ebx
shld edx, ecx, 0x11
shl ecx, 0x11
xor cl, byte [esi + 0x104ab871]
xor cl, bl
mov byte [esi + 0x104ab871], cl
inc esi
cmp esi, 0x14
jb 0x101fe340
jmp 0x101fe399
push ecx
push 0x104ab884
push 0x104ab871
lea ecx, [ebp - 0x40]
call fcn.1001a620
mov byte [ebp - 4], 6
lea eax, [ebp - 0x40]
cmp dword [ebp - 0x2c], 0x10
push 0
cmovae eax, dword [ebp - 0x40]
push edi
push eax
call fcn.10171b70
lea ecx, [ebp - 0x40]
mov dword [0x1061176c], eax
call fcn.10019dd0
lea ecx, [ebp - 0x58]
call fcn.10019dd0
push 0x1061175c
mov dword [ebp - 4], 0xffffffff
call fcn.102bb9b6
mov ebx, dword [ebp - 0x1bc]
add esp, 4
mov esi, dword [ebp - 0x1b4]
jmp 0x101fe094