Function at 0x10053d90
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x44
mov eax, dword [0x100e41c4]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov dword [ebp - 0x38], 0
mov ebx, 0x100d1e0c
mov eax, dword [0x10232d88]
push esi
push edi
mov edi, dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
test eax, eax
jne 0x10054330
mov ecx, dword [0x10232df0]
test ecx, ecx
jne 0x10053e0c
mov eax, str._0___a4_
lea ecx, [ebp - 0x30]
sub eax, 0x49f2a837
push eax
call fcn.1007cf10
push eax
call edi
test eax, eax
je 0x10053e06
lea eax, [ebx - 0x5be85c8c]
push eax
lea ecx, [ebp - 0x3c]
call fcn.1007ce60
push eax
call edi
test eax, eax
jne 0x10053e06
mov ecx, dword [0x10232df0]
mov al, 1
jmp 0x10053e0e
mov ecx, dword [0x10232df0]
xor al, al
mov esi, dword [sym.imp.PSAPI.DLL_GetModuleInformation]
test al, al
je 0x10053e90
mov esi, str._0___a4_
lea ecx, [ebp - 0x30]
sub esi, 0x49f2a837
push esi
call fcn.1007cf10
push eax
call edi
push esi
lea ecx, [ebp - 0x30]
mov dword [0x10232df0], eax
call fcn.1007cf10
xorps xmm0, xmm0
mov dword [ebp - 0x40], 0
push eax
movq qword [ebp - 0x3c], xmm0
call edi
test eax, eax
je 0x10053e6b
push 0xc
lea ecx, [ebp - 0x40]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov esi, dword [sym.imp.PSAPI.DLL_GetModuleInformation]
push eax
call esi
jmp 0x10053e71
mov esi, dword [sym.imp.PSAPI.DLL_GetModuleInformation]
mov ecx, dword [0x10232df0]
mov eax, dword [ebp - 0x3c]
add eax, ecx
mov dword [0x10232dac], eax
cmp eax, ecx
ja 0x10053e90
lea eax, [ecx + 0xffffff]
mov dword [0x10232dac], eax
test ecx, ecx
jne 0x10053ece
push 0x86c27a93
lea ecx, [ebp - 0x30]
call fcn.1007cfa0
push eax
call edi
test eax, eax
je 0x10053ec8
lea eax, [ebx - 0x5be85c8c]
push eax
lea ecx, [ebp - 0x3c]
call fcn.1007ce60
push eax
call edi
test eax, eax
jne 0x10053ec8
mov ecx, dword [0x10232df0]
mov al, 1
jmp 0x10053ed0
mov ecx, dword [0x10232df0]
xor al, al
test al, al
je 0x10053f3b
push 0x86c27a93
lea ecx, [ebp - 0x30]
call fcn.1007cfa0
push eax
call edi
push 0x86c27a93
lea ecx, [ebp - 0x30]
mov dword [0x10232df0], eax
call fcn.1007cfa0
xorps xmm0, xmm0
mov dword [ebp - 0x40], 0
push eax
movq qword [ebp - 0x3c], xmm0
call edi
test eax, eax
je 0x10053f1c
push 0xc
lea ecx, [ebp - 0x40]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call esi
mov ecx, dword [0x10232df0]
mov eax, dword [ebp - 0x3c]
add eax, ecx
mov dword [0x10232dac], eax
cmp eax, ecx
ja 0x10053f3b
lea eax, [ecx + 0xffffff]
mov dword [0x10232dac], eax
test ecx, ecx
jne 0x10053f90
mov edx, 0xd2
mov al, byte [ecx + 0x100d2758]
xor al, dl
mov byte [ebp + ecx - 0x30], al
inc ecx
lea eax, [edx + 1]
movzx edx, al
cmp ecx, 0xb
jb 0x10053f44
lea eax, [ebp - 0x30]
mov byte [ebp - 0x25], 0
push eax
call edi
test eax, eax
je 0x10053f8a
lea eax, [ebx - 0x5be85c8c]
push eax
lea ecx, [ebp - 0x3c]
call fcn.1007ce60
push eax
call edi
test eax, eax
jne 0x10053f8a
mov ecx, dword [0x10232df0]
mov al, 1
jmp 0x10053f92
mov ecx, dword [0x10232df0]
xor al, al
test al, al
je 0x10054034
mov edx, 0xd2
xor ecx, ecx
mov al, byte [ecx + 0x100d2758]
xor al, dl
mov byte [ebp + ecx - 0x30], al
inc ecx
lea eax, [edx + 1]
movzx edx, al
cmp ecx, 0xb
jb 0x10053fa1
lea eax, [ebp - 0x30]
mov byte [ebp - 0x25], 0
push eax
call edi
mov dword [0x10232df0], eax
mov edx, 0xd2
xor ecx, ecx
nop
mov al, byte [ecx + 0x100d2758]
xor al, dl
mov byte [ebp + ecx - 0x40], al
inc ecx
lea eax, [edx + 1]
movzx edx, al
cmp ecx, 0xb
jb 0x10053fd0
lea eax, [ebp - 0x40]
mov byte [ebp - 0x35], 0
xorps xmm0, xmm0
mov dword [ebp - 0x30], 0
push eax
movq qword [ebp - 0x2c], xmm0
call edi
test eax, eax
je 0x10054015
push 0xc
lea ecx, [ebp - 0x30]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call esi
mov ecx, dword [0x10232df0]
mov eax, dword [ebp - 0x2c]
add eax, ecx
mov dword [0x10232dac], eax
cmp eax, ecx
ja 0x10054034
lea eax, [ecx + 0xffffff]
mov dword [0x10232dac], eax
test ecx, ecx
jne 0x10054072
push 0x80231e05
lea ecx, [ebp - 0x3c]
call fcn.1007d050
push eax
call edi
test eax, eax
je 0x1005406c
lea eax, [ebx - 0x5be85c8c]
push eax
lea ecx, [ebp - 0x2c]
call fcn.1007ce60
push eax
call edi
test eax, eax
jne 0x1005406c
mov ecx, dword [0x10232df0]
mov al, 1
jmp 0x10054074
mov ecx, dword [0x10232df0]
xor al, al
test al, al
je 0x100540df
push 0x80231e05
lea ecx, [ebp - 0x2c]
call fcn.1007d050
push eax
call edi
push 0x80231e05
lea ecx, [ebp - 0x2c]
mov dword [0x10232df0], eax
call fcn.1007d050
xorps xmm0, xmm0
mov dword [ebp - 0x40], 0
push eax
movq qword [ebp - 0x3c], xmm0
call edi
test eax, eax
je 0x100540c0
push 0xc
lea ecx, [ebp - 0x40]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call esi
mov ecx, dword [0x10232df0]
mov eax, dword [ebp - 0x3c]
add eax, ecx
mov dword [0x10232dac], eax
cmp eax, ecx
ja 0x100540df
lea eax, [ecx + 0xffffff]
mov dword [0x10232dac], eax
test ecx, ecx
jne 0x1005411d
push 0x118e7bf2
lea ecx, [ebp - 0x40]
call fcn.1007d0c0
push eax
call edi
test eax, eax
je 0x10054117
lea eax, [ebx - 0x5be85c8c]
push eax
lea ecx, [ebp - 0x2c]
call fcn.1007ce60
push eax
call edi
test eax, eax
jne 0x10054117
mov ecx, dword [0x10232df0]
mov al, 1
jmp 0x1005411f
mov ecx, dword [0x10232df0]
xor al, al
test al, al
je 0x1005418a
push 0x118e7bf2
lea ecx, [ebp - 0x30]
call fcn.1007d0c0
push eax
call edi
push 0x118e7bf2
lea ecx, [ebp - 0x30]
mov dword [0x10232df0], eax
call fcn.1007d0c0
xorps xmm0, xmm0
mov dword [ebp - 0x40], 0
push eax
movq qword [ebp - 0x3c], xmm0
call edi
test eax, eax
je 0x1005416b
push 0xc
lea ecx, [ebp - 0x40]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call esi
mov ecx, dword [0x10232df0]
mov eax, dword [ebp - 0x3c]
add eax, ecx
mov dword [0x10232dac], eax
cmp eax, ecx
ja 0x1005418a
lea eax, [ecx + 0xffffff]
mov dword [0x10232dac], eax
test ecx, ecx
jne 0x100541b2
mov eax, 0x100d2778
lea ecx, [ebp - 0x30]
sub eax, 0x83d33ef
push eax
call fcn.1007d130
push eax
call edi
mov ecx, dword [0x10232df0]
test eax, eax
je 0x100541b2
mov al, 1
jmp 0x100541b4
xor al, al
test al, al
je 0x10054236
mov esi, 0x100d2778
lea ecx, [ebp - 0x30]
sub esi, 0x83d33ef
push esi
call fcn.1007d130
push eax
call edi
push esi
lea ecx, [ebp - 0x30]
mov dword [0x10232df0], eax
call fcn.1007d130
xorps xmm0, xmm0
mov dword [ebp - 0x40], 0
push eax
movq qword [ebp - 0x3c], xmm0
call edi
test eax, eax
je 0x1005420f
push 0xc
lea ecx, [ebp - 0x40]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov esi, dword [sym.imp.PSAPI.DLL_GetModuleInformation]
push eax
call esi
jmp 0x10054215
mov esi, dword [sym.imp.PSAPI.DLL_GetModuleInformation]
mov ecx, dword [0x10232df0]
mov eax, dword [ebp - 0x3c]
add eax, ecx
mov dword [0x10232dac], eax
cmp eax, ecx
ja 0x1005423c
lea eax, [ecx + 0xffffff]
mov dword [0x10232dac], eax
jmp 0x1005423c
mov esi, dword [sym.imp.PSAPI.DLL_GetModuleInformation]
test ecx, ecx
jne 0x10054274
lea eax, [ebx - 0x5be85c8c]
push eax
lea ecx, [ebp - 0x2c]
call fcn.1007ce60
push eax
call edi
test eax, eax
je 0x10054274
mov eax, 0x100d2758
lea ecx, [ebp - 0x40]
sub eax, 0x7c238504
push eax
call fcn.1007d010
push eax
call edi
test eax, eax
je 0x10054274
mov al, 1
jmp 0x10054276
xor al, al
test al, al
je 0x10054324
mov edx, 0xd2
xor ecx, ecx
nop word [eax + eax]
mov al, byte [ecx + 0x100d2758]
xor al, dl
mov byte [ebp + ecx - 0x30], al
inc ecx
lea eax, [edx + 1]
movzx edx, al
cmp ecx, 0xb
jb 0x10054290
lea eax, [ebp - 0x30]
mov byte [ebp - 0x25], 0
push eax
call edi
mov dword [0x10232df0], eax
mov edx, 0xd2
xor ecx, ecx
nop
mov al, byte [ecx + 0x100d2758]
xor al, dl
mov byte [ebp + ecx - 0x40], al
inc ecx
lea eax, [edx + 1]
movzx edx, al
cmp ecx, 0xb
jb 0x100542c0
lea eax, [ebp - 0x40]
mov byte [ebp - 0x35], 0
xorps xmm0, xmm0
mov dword [ebp - 0x30], 0
push eax
movq qword [ebp - 0x2c], xmm0
call edi
test eax, eax
je 0x10054305
push 0xc
lea ecx, [ebp - 0x30]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call esi
mov ecx, dword [0x10232df0]
mov eax, dword [ebp - 0x2c]
add eax, ecx
mov dword [0x10232dac], eax
cmp eax, ecx
ja 0x10054324
lea eax, [ecx + 0xffffff]
mov dword [0x10232dac], eax
mov dword [0x10232d88], 1
jmp 0x10054339
cmp eax, 1
jne 0x10054554
sub ebx, 0x5be85c8c
lea ecx, [ebp - 0x2c]
push ebx
call fcn.1007ce60
push eax
call edi
test eax, eax
je 0x1005438a
mov edx, 0xd2
xor ecx, ecx
nop word [eax + eax]
mov al, byte [ecx + 0x100d2758]
xor al, dl
mov byte [ebp + ecx - 0x40], al
inc ecx
lea eax, [edx + 1]
movzx edx, al
cmp ecx, 0xb
jb 0x10054360
lea eax, [ebp - 0x40]
mov byte [ebp - 0x35], 0
push eax
call edi
test eax, eax
je 0x1005438a
mov al, 1
jmp 0x1005438c
xor al, al
test al, al
je 0x1005443a
mov esi, dword [0x10232df0]
mov dword [ebp - 0x20], 0xccccccc3
mov dword [ebp - 0x1c], 0xcccccccc
mov dword [ebp - 0x18], 0xec8b55cc
mov dword [ebp - 0x14], 0xffffffa1
mov dword [ebp - 0x10], 0xffff8bff
mov dword [ebp - 0xc], 0x8bffffff
mov word [ebp - 8], 0xcff
cmp esi, dword [0x10232dac]
jae 0x1005454a
mov edi, dword [0x101eefe8]
lea eax, [ebp - 0x20]
mov ebx, esi
sub ebx, eax
test edi, edi
jne 0x1005442b
xor eax, eax
nop dword [eax]
lea ecx, [ebp - 0x20]
add ecx, eax
mov dl, byte [ecx]
cmp dl, 0xff
je 0x10054406
cmp byte [ecx + ebx], dl
jne 0x1005442b
cmp eax, 0x19
je 0x1005440e
inc eax
cmp eax, 0x1a
jb 0x100543f0
jmp 0x1005442b
mov edi, esi
mov dword [0x101eefe8], edi
test esi, esi
je 0x1005442b
mov edi, dword [esi + 0x13]
mov dword [0x101eefe8], edi
lea eax, [edi + 8]
mov dword [0x101ef074], eax
inc esi
inc ebx
cmp esi, dword [0x10232dac]
jb 0x100543e3
jmp 0x1005454a
mov eax, dword [0x10232dac]
mov ecx, dword [0x10232df0]
mov dword [ebp - 0x30], 0xffffff8b
mov dword [ebp - 0x2c], 0xc985ffff
mov word [ebp - 0x28], 0x367e
mov byte [ebp - 0x26], 0x8b
cmp ecx, eax
jae 0x100544cf
mov esi, dword [0x101ef108]
lea eax, [ebp - 0x30]
mov edi, 1
lea edx, [ecx + 2]
sub edi, eax
test esi, esi
jne 0x100544b8
xor ecx, ecx
nop word [eax + eax]
lea eax, [ebp - 0x30]
add eax, ecx
mov bl, byte [eax]
cmp bl, 0xff
je 0x10054499
add eax, edi
cmp byte [eax + edx - 3], bl
jne 0x100544b8
cmp ecx, 0xa
je 0x100544a1
inc ecx
cmp ecx, 0xb
jb 0x10054480
jmp 0x100544b8
lea eax, [edx - 2]
test eax, eax
je 0x100544b8
mov eax, dword [edx]
mov esi, dword [edx + 0xf]
mov dword [0x101ef114], eax
mov dword [0x101ef108], esi
inc edx
lea eax, [edx - 2]
cmp eax, dword [0x10232dac]
jb 0x10054474
mov eax, dword [0x10232dac]
mov ecx, dword [0x10232df0]
mov dword [ebp - 0x30], 0xffffff8b
mov dword [ebp - 0x2c], 0xd285ffff
mov word [ebp - 0x28], 0x337e
cmp ecx, eax
jae 0x1005454a
mov esi, dword [0x101ef028]
lea eax, [ebp - 0x30]
mov edi, 1
lea edx, [ecx + 2]
sub edi, eax
nop word [eax + eax]
test esi, esi
jne 0x1005453e
xor ecx, ecx
lea eax, [ebp - 0x30]
add eax, ecx
mov bl, byte [eax]
cmp bl, 0xff
je 0x1005451f
add eax, edi
cmp byte [eax + edx - 3], bl
jne 0x1005453e
cmp ecx, 9
je 0x10054527
inc ecx
cmp ecx, 0xa
jb 0x10054506
jmp 0x1005453e
lea eax, [edx - 2]
test eax, eax
je 0x1005453e
mov eax, dword [edx]
mov esi, dword [edx + 0xf]
mov dword [0x101ef058], eax
mov dword [0x101ef028], esi
inc edx
lea eax, [edx - 2]
cmp eax, dword [0x10232dac]
jb 0x10054500
mov dword [0x10232d88], 2
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.1008d9f1
mov esp, ebp
pop ebp
ret