Function at 0x5a39b0
Capabilities:
Encode data using xor
Link many functions at runtime

Disassembly:
push ecx
push ebx
push ebp
push esi
push edi
mov dword [esp + 0x10], 1
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov dword [0xd14b38], eax
xor eax, eax
mov bl, 0xaa
mov cl, byte [eax + 0x67567c]
xor cl, bl
mov byte [eax + 0x67567c], cl
inc eax
cmp eax, 0xc
jb 0x5a39cc
push 0x67567c
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov dword [0xd14b30], eax
xor ecx, ecx
mov dl, byte [ecx + 0x67567c]
xor dl, bl
mov byte [ecx + 0x67567c], dl
inc ecx
cmp ecx, 0xc
jb 0x5a39f2
xor ecx, ecx
mov dl, byte [ecx + 0x6756a4]
xor dl, bl
mov byte [ecx + 0x6756a4], dl
inc ecx
cmp ecx, 0x17
jb 0x5a3a08
push 0x6756a4
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0xd14b34], eax
xor ecx, ecx
mov dl, byte [ecx + 0x6756a4]
xor dl, bl
mov byte [ecx + 0x6756a4], dl
inc ecx
cmp ecx, 0x17
jb 0x5a3a2f
mov ebp, dword [sym.imp.KERNEL32.dll_ReadProcessMemory]
push 0
push 8
push 0xd14a64
push eax
mov eax, dword [0xd14b38]
push eax
call ebp
test eax, eax
je 0x5a3a78
mov ecx, 2
mov edi, 0xd14aa8
mov esi, 0xd14a64
xor edx, edx
repe cmpsd dword [esi], dword es:[edi]
je 0x5a3a78
mov dword [esp + 0x10], edx
xor eax, eax
mov cl, byte [eax + 0x6756c8]
xor cl, bl
mov byte [eax + 0x6756c8], cl
inc eax
cmp eax, 0xb
jb 0x5a3a7a
mov eax, dword [0xd14b30]
push 0x6756c8
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0xd14b34], eax
xor ecx, ecx
mov dl, byte [ecx + 0x6756c8]
xor dl, bl
mov byte [ecx + 0x6756c8], dl
inc ecx
cmp ecx, 0xb
jb 0x5a3aa6
mov ecx, dword [0xd14b38]
push 0
push 8
push 0xd14a64
push eax
push ecx
call ebp
test eax, eax
je 0x5a3aea
mov ecx, 2
mov edi, 0xd14ab0
mov esi, 0xd14a64
xor edx, edx
repe cmpsd dword [esi], dword es:[edi]
je 0x5a3aea
mov dword [esp + 0x10], edx
xor eax, eax
mov cl, byte [eax + 0x67574c]
xor cl, bl
mov byte [eax + 0x67574c], cl
inc eax
cmp eax, 0x10
jb 0x5a3aec
mov eax, dword [0xd14b30]
push 0x67574c
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0xd14b34], eax
xor ecx, ecx
mov dl, byte [ecx + 0x67574c]
xor dl, bl
mov byte [ecx + 0x67574c], dl
inc ecx
cmp ecx, 0x10
jb 0x5a3b18
mov ecx, dword [0xd14b38]
push 0
push 8
push 0xd14a64
push eax
push ecx
call ebp
test eax, eax
je 0x5a3b5c
mov ecx, 2
mov edi, 0xd14ac0
mov esi, 0xd14a64
xor edx, edx
repe cmpsd dword [esi], dword es:[edi]
je 0x5a3b5c
mov dword [esp + 0x10], edx
xor eax, eax
mov cl, byte [eax + 0x675760]
xor cl, bl
mov byte [eax + 0x675760], cl
inc eax
cmp eax, 0x11
jb 0x5a3b5e
mov eax, dword [0xd14b30]
push 0x675760
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0xd14b34], eax
xor ecx, ecx
mov dl, byte [ecx + 0x675760]
xor dl, bl
mov byte [ecx + 0x675760], dl
inc ecx
cmp ecx, 0x11
jb 0x5a3b8a
mov ecx, dword [0xd14b38]
push 0
push 8
push 0xd14a64
push eax
push ecx
call ebp
test eax, eax
je 0x5a3bce
mov ecx, 2
mov edi, 0xd14ac8
mov esi, 0xd14a64
xor edx, edx
repe cmpsd dword [esi], dword es:[edi]
je 0x5a3bce
mov dword [esp + 0x10], edx
xor eax, eax
mov cl, byte [eax + 0x675774]
xor cl, bl
mov byte [eax + 0x675774], cl
inc eax
cmp eax, 0x12
jb 0x5a3bd0
mov eax, dword [0xd14b30]
push 0x675774
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0xd14b34], eax
xor ecx, ecx
mov dl, byte [ecx + 0x675774]
xor dl, bl
mov byte [ecx + 0x675774], dl
inc ecx
cmp ecx, 0x12
jb 0x5a3bfc
mov ecx, dword [0xd14b38]
push 0
push 8
push 0xd14a64
push eax
push ecx
call ebp
test eax, eax
je 0x5a3c40
mov ecx, 2
mov edi, 0xd14ad0
mov esi, 0xd14a64
xor edx, edx
repe cmpsd dword [esi], dword es:[edi]
je 0x5a3c40
mov dword [esp + 0x10], edx
xor eax, eax
mov cl, byte [eax + 0x675698]
xor cl, bl
mov byte [eax + 0x675698], cl
inc eax
cmp eax, 0xa
jb 0x5a3c42
push 0x675698
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov dword [0xd14b30], eax
xor ecx, ecx
mov dl, byte [ecx + 0x675698]
xor dl, bl
mov byte [ecx + 0x675698], dl
inc ecx
cmp ecx, 0xa
jb 0x5a3c68
xor ecx, ecx
mov dl, byte [ecx + 0x675788]
xor dl, bl
mov byte [ecx + 0x675788], dl
inc ecx
cmp ecx, 4
jb 0x5a3c7e
push 0x675788
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0xd14b34], eax
xor ecx, ecx
mov dl, byte [ecx + 0x675788]
xor dl, bl
mov byte [ecx + 0x675788], dl
inc ecx
cmp ecx, 4
jb 0x5a3ca5
push 0
push 8
push 0xd14a64
push eax
mov eax, dword [0xd14b38]
push eax
call ebp
test eax, eax
je 0x5a3ce8
mov ecx, 2
mov edi, 0xd14ad8
mov esi, 0xd14a64
xor edx, edx
repe cmpsd dword [esi], dword es:[edi]
je 0x5a3ce8
mov dword [esp + 0x10], edx
xor eax, eax
mov cl, byte [eax + 0x675790]
xor cl, bl
mov byte [eax + 0x675790], cl
inc eax
cmp eax, 4
jb 0x5a3cea
mov eax, dword [0xd14b30]
push 0x675790
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0xd14b34], eax
xor ecx, ecx
mov dl, byte [ecx + 0x675790]
xor dl, bl
mov byte [ecx + 0x675790], dl
inc ecx
cmp ecx, 4
jb 0x5a3d16
mov ecx, dword [0xd14b38]
push 0
push 8
push 0xd14a64
push eax
push ecx
call ebp
test eax, eax
je 0x5a3d5e
mov ecx, 2
mov edi, 0xd14ae0
mov esi, 0xd14a64
xor edx, edx
repe cmpsd dword [esi], dword es:[edi]
je 0x5a3d5e
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
pop ecx
ret
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebp
pop ebx
pop ecx
ret