Function at 0x10023710
Capabilities:
Encode data using xor

Disassembly:
push ecx
push ebx
push ebp
mov ebp, dword [sym.imp.ucrtbased.dll_malloc]
mov dword [esp + 8], 0x100382b8
mov ebx, dword [esp + 8]
push esi
mov esi, dword [esp + 0xc]
add esi, 0x14
cmp byte [ebx + 0x13], 0
push edi
je 0x10023772
mov eax, dword [ebx + 0xf]
inc eax
push eax
call ebp
mov ebp, dword [ebx + 0xf]
add esp, 4
xor edx, edx
mov edi, eax
test ebp, ebp
je 0x10023766
sub esi, edi
nop dword [eax + eax]
mov eax, edx
lea ecx, [edx + edi]
and eax, 7
inc edx
mov al, byte [eax + ebx + 7]
xor al, byte [ecx + esi]
mov byte [ecx], al
cmp edx, ebp
jb 0x10023750
mov byte [edi + ebp], 0
mov esi, edi
mov ebp, dword [sym.imp.ucrtbased.dll_malloc]
push esi
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
test eax, eax
jne 0x10023d25
mov dword [esp + 0x10], 0x100382dc
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x10]
add esi, 0x14
cmp byte [ebx + 0x13], al
je 0x100237cc
mov eax, dword [ebx + 0xf]
inc eax
push eax
call ebp
mov ebp, dword [ebx + 0xf]
add esp, 4
xor edx, edx
mov edi, eax
test ebp, ebp
je 0x100237c6
sub esi, edi
mov eax, edx
lea ecx, [edx + edi]
and eax, 7
inc edx
mov al, byte [eax + ebx + 7]
xor al, byte [ecx + esi]
mov byte [ecx], al
cmp edx, ebp
jb 0x100237b0
mov byte [edi + ebp], 0
mov esi, edi
push esi
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
test eax, eax
jne 0x10023d25
mov dword [esp + 0x10], 0x10038300
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x10]
add esi, 0x14
cmp byte [ebx + 0x13], al
je 0x1002382c
mov eax, dword [ebx + 0xf]
inc eax
push eax
call dword [sym.imp.ucrtbased.dll_malloc]
mov ebp, dword [ebx + 0xf]
add esp, 4
xor edx, edx
mov edi, eax
test ebp, ebp
je 0x10023826
sub esi, edi
nop
mov eax, edx
lea ecx, [edx + edi]
and eax, 7
inc edx
mov al, byte [eax + ebx + 7]
xor al, byte [ecx + esi]
mov byte [ecx], al
cmp edx, ebp
jb 0x10023810
mov byte [edi + ebp], 0
mov esi, edi
push esi
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
test eax, eax
jne 0x10023d25
mov dword [esp + 0x10], 0x10038324
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x10]
add esi, 0x14
cmp byte [ebx + 0x13], al
je 0x1002388c
mov eax, dword [ebx + 0xf]
inc eax
push eax
call dword [sym.imp.ucrtbased.dll_malloc]
mov ebp, dword [ebx + 0xf]
add esp, 4
xor edx, edx
mov edi, eax
test ebp, ebp
je 0x10023886
sub esi, edi
nop
mov eax, edx
lea ecx, [edx + edi]
and eax, 7
inc edx
mov al, byte [eax + ebx + 7]
xor al, byte [ecx + esi]
mov byte [ecx], al
cmp edx, ebp
jb 0x10023870
mov byte [edi + ebp], 0
mov esi, edi
push esi
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
test eax, eax
jne 0x10023d25
mov dword [esp + 0x10], 0x10038348
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x10]
add esi, 0x14
cmp byte [ebx + 0x13], al
je 0x100238ec
mov eax, dword [ebx + 0xf]
inc eax
push eax
call dword [sym.imp.ucrtbased.dll_malloc]
mov ebp, dword [ebx + 0xf]
add esp, 4
xor edx, edx
mov edi, eax
test ebp, ebp
je 0x100238e6
sub esi, edi
nop
mov eax, edx
lea ecx, [edx + edi]
and eax, 7
inc edx
mov al, byte [eax + ebx + 7]
xor al, byte [ecx + esi]
mov byte [ecx], al
cmp edx, ebp
jb 0x100238d0
mov byte [edi + ebp], 0
mov esi, edi
push esi
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
test eax, eax
jne 0x10023d25
mov dword [esp + 0x10], 0x1003836c
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x10]
add esi, 0x14
cmp byte [ebx + 0x13], al
je 0x1002394c
mov eax, dword [ebx + 0xf]
inc eax
push eax
call dword [sym.imp.ucrtbased.dll_malloc]
mov ebp, dword [ebx + 0xf]
add esp, 4
xor edx, edx
mov edi, eax
test ebp, ebp
je 0x10023946
sub esi, edi
nop
mov eax, edx
lea ecx, [edx + edi]
and eax, 7
inc edx
mov al, byte [eax + ebx + 7]
xor al, byte [esi + ecx]
mov byte [ecx], al
cmp edx, ebp
jb 0x10023930
mov byte [edi + ebp], 0
mov esi, edi
push esi
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
test eax, eax
jne 0x10023d25
mov dword [esp + 0x10], 0x10038390
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x10]
add esi, 0x14
cmp byte [ebx + 0x13], al
je 0x100239ac
mov eax, dword [ebx + 0xf]
inc eax
push eax
call dword [sym.imp.ucrtbased.dll_malloc]
mov ebp, dword [ebx + 0xf]
add esp, 4
xor edx, edx
mov edi, eax
test ebp, ebp
je 0x100239a6
sub esi, edi
nop
mov eax, edx
lea ecx, [edx + edi]
and eax, 7
inc edx
mov al, byte [eax + ebx + 7]
xor al, byte [esi + ecx]
mov byte [ecx], al
cmp edx, ebp
jb 0x10023990
mov byte [edi + ebp], 0
mov esi, edi
push esi
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
test eax, eax
jne 0x10023d25
mov dword [esp + 0x10], 0x100383b4
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x10]
add esi, 0x14
cmp byte [ebx + 0x13], al
je 0x10023a0c
mov eax, dword [ebx + 0xf]
inc eax
push eax
call dword [sym.imp.ucrtbased.dll_malloc]
mov ebp, dword [ebx + 0xf]
add esp, 4
xor edx, edx
mov edi, eax
test ebp, ebp
je 0x10023a06
sub esi, edi
nop
mov eax, edx
lea ecx, [edx + edi]
and eax, 7
inc edx
mov al, byte [eax + ebx + 7]
xor al, byte [esi + ecx]
mov byte [ecx], al
cmp edx, ebp
jb 0x100239f0
mov byte [edi + ebp], 0
mov esi, edi
push esi
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
test eax, eax
jne 0x10023d25
mov dword [esp + 0x10], 0x100383d4
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x10]
add esi, 0x14
cmp byte [ebx + 0x13], al
je 0x10023a6c
mov eax, dword [ebx + 0xf]
inc eax
push eax
call dword [sym.imp.ucrtbased.dll_malloc]
mov ebp, dword [ebx + 0xf]
add esp, 4
xor edx, edx
mov edi, eax
test ebp, ebp
je 0x10023a66
sub esi, edi
nop
mov eax, edx
lea ecx, [edx + edi]
and eax, 7
inc edx
mov al, byte [eax + ebx + 7]
xor al, byte [esi + ecx]
mov byte [ecx], al
cmp edx, ebp
jb 0x10023a50
mov byte [edi + ebp], 0
mov esi, edi
push esi
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
test eax, eax
jne 0x10023d25
mov dword [esp + 0x10], 0x100383f4
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x10]
add esi, 0x14
cmp byte [ebx + 0x13], al
je 0x10023acc
mov eax, dword [ebx + 0xf]
inc eax
push eax
call dword [sym.imp.ucrtbased.dll_malloc]
mov ebp, dword [ebx + 0xf]
add esp, 4
xor edx, edx
mov edi, eax
test ebp, ebp
je 0x10023ac6
sub esi, edi
nop
mov eax, edx
lea ecx, [edx + edi]
and eax, 7
inc edx
mov al, byte [eax + ebx + 7]
xor al, byte [esi + ecx]
mov byte [ecx], al
cmp edx, ebp
jb 0x10023ab0
mov byte [edi + ebp], 0
mov esi, edi
push esi
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
test eax, eax
jne 0x10023d25
mov dword [esp + 0x10], 0x10038414
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x10]
add esi, 0x14
cmp byte [ebx + 0x13], al
je 0x10023b2c
mov eax, dword [ebx + 0xf]
inc eax
push eax
call dword [sym.imp.ucrtbased.dll_malloc]
mov ebp, dword [ebx + 0xf]
add esp, 4
xor edx, edx
mov edi, eax
test ebp, ebp
je 0x10023b26
sub esi, edi
nop
mov eax, edx
lea ecx, [edx + edi]
and eax, 7
inc edx
mov al, byte [eax + ebx + 7]
xor al, byte [esi + ecx]
mov byte [ecx], al
cmp edx, ebp
jb 0x10023b10
mov byte [edi + ebp], 0
mov esi, edi
push esi
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
test eax, eax
jne 0x10023d25
mov dword [esp + 0x10], 0x10038438
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x10]
add esi, 0x14
cmp byte [ebx + 0x13], al
je 0x10023b8c
mov eax, dword [ebx + 0xf]
inc eax
push eax
call dword [sym.imp.ucrtbased.dll_malloc]
mov ebp, dword [ebx + 0xf]
add esp, 4
xor edx, edx
mov edi, eax
test ebp, ebp
je 0x10023b86
sub esi, edi
nop
mov eax, edx
lea ecx, [edx + edi]
and eax, 7
inc edx
mov al, byte [eax + ebx + 7]
xor al, byte [esi + ecx]
mov byte [ecx], al
cmp edx, ebp
jb 0x10023b70
mov byte [edi + ebp], 0
mov esi, edi
push esi
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
test eax, eax
jne 0x10023d25
mov dword [esp + 0x10], 0x10038458
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x10]
add esi, 0x14
cmp byte [ebx + 0x13], al
je 0x10023bec
mov eax, dword [ebx + 0xf]
inc eax
push eax
call dword [sym.imp.ucrtbased.dll_malloc]
mov ebp, dword [ebx + 0xf]
add esp, 4
xor edx, edx
mov edi, eax
test ebp, ebp
je 0x10023be6
sub esi, edi
nop
mov eax, edx
lea ecx, [edx + edi]
and eax, 7
inc edx
mov al, byte [eax + ebx + 7]
xor al, byte [esi + ecx]
mov byte [ecx], al
cmp edx, ebp
jb 0x10023bd0
mov byte [edi + ebp], 0
mov esi, edi
push esi
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
test eax, eax
jne 0x10023d25
mov dword [esp + 0x10], 0x1003847c
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x10]
add esi, 0x14
cmp byte [ebx + 0x13], al
je 0x10023c4c
mov eax, dword [ebx + 0xf]
inc eax
push eax
call dword [sym.imp.ucrtbased.dll_malloc]
mov ebp, dword [ebx + 0xf]
add esp, 4
xor edx, edx
mov edi, eax
test ebp, ebp
je 0x10023c46
sub esi, edi
nop
mov eax, edx
lea ecx, [edx + edi]
and eax, 7
inc edx
mov al, byte [eax + ebx + 7]
xor al, byte [esi + ecx]
mov byte [ecx], al
cmp edx, ebp
jb 0x10023c30
mov byte [edi + ebp], 0
mov esi, edi
push esi
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
test eax, eax
jne 0x10023d25
mov dword [esp + 0x10], 0x10038498
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x10]
add esi, 0x14
cmp byte [ebx + 0x13], al
je 0x10023cac
mov eax, dword [ebx + 0xf]
inc eax
push eax
call dword [sym.imp.ucrtbased.dll_malloc]
mov ebp, dword [ebx + 0xf]
add esp, 4
xor edx, edx
mov edi, eax
test ebp, ebp
je 0x10023ca6
sub esi, edi
nop
mov eax, edx
lea ecx, [edx + edi]
and eax, 7
inc edx
mov al, byte [eax + ebx + 7]
xor al, byte [esi + ecx]
mov byte [ecx], al
cmp edx, ebp
jb 0x10023c90
mov byte [edi + ebp], 0
mov esi, edi
push esi
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
test eax, eax
jne 0x10023d25
mov dword [esp + 0x10], 0x100384b8
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x10]
add esi, 0x14
cmp byte [ebx + 0x13], al
je 0x10023d0c
mov eax, dword [ebx + 0xf]
inc eax
push eax
call dword [sym.imp.ucrtbased.dll_malloc]
mov ebp, dword [ebx + 0xf]
add esp, 4
xor edx, edx
mov edi, eax
test ebp, ebp
je 0x10023d06
sub esi, edi
nop
mov eax, edx
lea ecx, [edx + edi]
and eax, 7
inc edx
mov al, byte [eax + ebx + 7]
xor al, byte [esi + ecx]
mov byte [ecx], al
cmp edx, ebp
jb 0x10023cf0
mov byte [edi + ebp], 0
mov esi, edi
push esi
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
test eax, eax
jne 0x10023d25
push 0xa
call dword [sym.imp.KERNEL32.dll_Sleep]
pop edi
pop esi
pop ebp
pop ebx
pop ecx
ret
call fcn.10023d30
int3