Function at 0x4a5b4070
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x22b
push 0
push 0
dec ecx
jne 0x4a5b4078
push ecx
push ebx
push esi
push edi
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x24], eax
xor eax, eax
push ebp
push 0x4a5b45ed
push dword fs:[eax]
mov dword fs:[eax], esp
xor ecx, ecx
push ebp
push 0x4a5b456f
push dword fs:[ecx]
mov dword fs:[ecx], esp
mov eax, dword [ebp - 0x24]
mov edx, dword [eax]
call dword [edx + 0xc]
mov eax, dword [ebp - 0x24]
cmp dword [eax + 0x30], 0
jne 0x4a5b4565
mov eax, dword [ebp - 0x24]
cmp dword [eax + 0x2c], 0
je 0x4a5b4565
xor eax, eax
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 0x2c]
push eax
mov eax, dword [ebp - 0x24]
add eax, 0x30
push eax
push 0
lea eax, [ebp - 0x1150]
mov edx, dword [ebp - 0x28]
call fcn.4a5083f4
mov eax, dword [ebp - 0x1150]
push eax
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x2c]
push eax
mov eax, dword [eax]
call dword [eax + 0xc]
mov eax, dword [ebp - 0x24]
cmp dword [eax + 0x30], 0
jne 0x4a5b4565
push 0x1aa0
push 0x40
call sub.kernel32.dll_LocalAlloc_1
mov ebx, eax
test ebx, ebx
je 0x4a5b4565
mov dword [ebx + 4], 1
mov dword [ebx + 8], 0x1aa0
lea eax, [ebp - 0x30]
push eax
push ebx
push 0x1aa0
push 0x4a5ed1cc
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x2c]
push eax
mov eax, dword [eax]
call dword [eax + 0xac]
test eax, eax
jne 0x4a5b455f
cmp dword [ebp - 0x30], 0
jne 0x4a5b455f
xor eax, eax
mov dword [ebx + 4], eax
lea eax, [ebp - 0x30]
push eax
push ebx
push 0x1aa0
push 0x4a5ed1cc
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x2c]
push eax
mov eax, dword [eax]
call dword [eax + 0xac]
test eax, eax
jne 0x4a5b455f
cmp dword [ebp - 0x30], 0
jne 0x4a5b455f
cmp dword [ebx + 0xc], 0
jbe 0x4a5b455f
cmp dword [ebx + 0xc], 1
jne 0x4a5b41ae
mov eax, dword [ebx + 0x10]
mov edx, dword [ebp - 0x24]
mov dword [edx + 0x30], eax
jmp 0x4a5b455f
lea eax, [ebp - 0xc]
call fcn.4a507618
push 0x20
lea eax, [ebp - 4]
mov ecx, 1
mov edx, dword [0x4a5b4010]
call fcn.4a509478
add esp, 4
xor edi, edi
xor esi, esi
mov eax, dword [ebp - 4]
test eax, eax
je 0x4a5b41de
sub eax, 4
mov eax, dword [eax]
cmp eax, edi
jne 0x4a5b41fd
mov eax, edi
add eax, eax
push eax
lea eax, [ebp - 4]
mov ecx, 1
mov edx, dword [0x4a5b4010]
call fcn.4a509478
add esp, 4
imul eax, edi, 0x69
mov edx, dword [ebp - 4]
mov dword [edx + eax*8], 0x348
push 0
imul eax, edi, 0x69
mov edx, dword [ebp - 4]
lea eax, [edx + eax*8]
push eax
push esi
push 0
call sub.user32.dll_EnumDisplayDevicesW
test eax, eax
jne 0x4a5b423b
push edi
lea eax, [ebp - 4]
mov ecx, 1
mov edx, dword [0x4a5b4010]
call fcn.4a509478
add esp, 4
jmp 0x4a5b42aa
imul eax, edi, 0x69
mov edx, dword [ebp - 4]
test byte [edx + eax*8 + 0x144], 1
je 0x4a5b424c
inc edi
cmp dword [ebp - 0xc], 0
jne 0x4a5b429d
lea eax, [ebp - 0x1154]
imul edx, esi, 0x69
mov ecx, dword [ebp - 4]
lea edx, [ecx + edx*8 + 4]
mov ecx, 0x20
call fcn.4a5083a4
mov eax, dword [ebp - 0x1154]
mov ecx, dword [0x4a5ed39c]
mov ecx, dword [ecx]
mov edx, dword [ebp - 0x28]
call ecx
test al, al
je 0x4a5b429d
lea eax, [ebp - 0xc]
imul edx, esi, 0x69
mov ecx, dword [ebp - 4]
lea edx, [ecx + edx*8 + 0x148]
mov ecx, 0x80
call fcn.4a5083a4
inc esi
cmp esi, 0x3e8
jne 0x4a5b41d2
cmp dword [ebp - 0xc], 0
je 0x4a5b4445
mov esi, dword [ebp - 4]
test esi, esi
je 0x4a5b42c0
sub esi, 4
mov esi, dword [esi]
push esi
lea eax, [ebp - 8]
mov ecx, 1
mov edx, dword [0x4a5b4040]
call fcn.4a509478
add esp, 4
xor edi, edi
mov eax, dword [ebp - 4]
test eax, eax
je 0x4a5b42e5
sub eax, 4
mov eax, dword [eax]
dec eax
test eax, eax
jl 0x4a5b4383
inc eax
mov dword [ebp - 0x3c], eax
xor esi, esi
lea eax, [ebp - 0x1158]
imul edx, esi, 0x69
mov ecx, dword [ebp - 4]
lea edx, [ecx + edx*8 + 0x148]
mov ecx, 0x80
call fcn.4a5083a4
mov edx, dword [ebp - 0x1158]
mov ecx, dword [0x4a5ed39c]
mov ecx, dword [ecx]
mov eax, dword [ebp - 0xc]
call ecx
test al, al
je 0x4a5b4379
mov eax, dword [ebp - 8]
xor edx, edx
mov dword [eax + edi*4], edx
xor eax, eax
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 0x2c]
push eax
mov eax, dword [ebp - 8]
lea eax, [eax + edi*4]
push eax
push 0
lea eax, [ebp - 0x115c]
imul edx, esi, 0x69
mov ecx, dword [ebp - 4]
lea edx, [ecx + edx*8 + 4]
mov ecx, 0x20
call fcn.4a5081b8
mov eax, dword [ebp - 0x115c]
push eax
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x2c]
push eax
mov eax, dword [eax]
call dword [eax + 0xc]
mov eax, dword [ebp - 8]
cmp dword [eax + edi*4], 0
je 0x4a5b4379
inc edi
inc esi
dec dword [ebp - 0x3c]
jne 0x4a5b42f4
test edi, edi
jle 0x4a5b4445
push edi
lea eax, [ebp - 8]
mov ecx, 1
mov edx, dword [0x4a5b4040]
call fcn.4a509478
add esp, 4
mov eax, dword [ebp - 8]
test eax, eax
je 0x4a5b43ae
sub eax, 4
mov eax, dword [eax]
mov edx, dword [ebx + 0xc]
inc eax
cmp edx, eax
jne 0x4a5b4445
xor eax, eax
mov dword [ebp - 0x34], eax
dec edx
test edx, edx
jl 0x4a5b4412
inc edx
mov dword [ebp - 0x3c], edx
xor esi, esi
mov eax, dword [ebp - 8]
test eax, eax
je 0x4a5b43d6
sub eax, 4
mov eax, dword [eax]
dec eax
test eax, eax
jl 0x4a5b440c
inc eax
mov dword [ebp - 0x40], eax
xor edi, edi
mov eax, dword [ebp - 8]
mov eax, dword [eax + edi*4]
mov edx, esi
shl edx, 4
add edx, esi
cmp eax, dword [ebx + edx*4 + 0x10]
jne 0x4a5b4406
mov eax, esi
shl eax, 4
add eax, esi
xor edx, edx
mov dword [ebx + eax*4 + 0x10], edx
inc dword [ebp - 0x34]
jmp 0x4a5b440c
inc edi
dec dword [ebp - 0x40]
jne 0x4a5b43e1
inc esi
dec dword [ebp - 0x3c]
jne 0x4a5b43ca
mov eax, dword [ebx + 0xc]
mov edx, dword [ebp - 0x34]
inc edx
cmp eax, edx
jne 0x4a5b4445
dec eax
test eax, eax
jl 0x4a5b4445
inc eax
mov dword [ebp - 0x3c], eax
xor esi, esi
mov eax, esi
shl eax, 4
add eax, esi
mov eax, dword [ebx + eax*4 + 0x10]
test eax, eax
je 0x4a5b443f
mov edx, dword [ebp - 0x24]
mov dword [edx + 0x30], eax
jmp 0x4a5b4445
inc esi
dec dword [ebp - 0x3c]
jne 0x4a5b4428
mov eax, dword [ebp - 0x24]
cmp dword [eax + 0x30], 0
jne 0x4a5b455f
lea eax, [ebp - 0x1c]
call fcn.4a50763c
lea eax, [ebp - 0x18]
call fcn.4a507618
push eax
lea eax, [ebp - 0xc]
call fcn.4a507618
push eax
lea eax, [ebp - 0x14]
call fcn.4a507618
push eax
lea eax, [ebp - 0x10]
call fcn.4a507618
mov edx, eax
mov eax, dword [ebp - 0x28]
pop ecx
call fcn.4a5a37c4
test al, al
je 0x4a5b455f
lea ecx, [ebp - 0x38]
lea edx, [ebp - 0x1040]
mov eax, dword [ebp - 0xc]
call fcn.4a5a3a04
test al, al
je 0x4a5b455f
push 0
lea edx, [ebp - 0x1040]
lea eax, [ebp - 0x1c]
mov ecx, 0x80
call fcn.4a5077d4
mov eax, dword [ebx + 0xc]
dec eax
test eax, eax
jl 0x4a5b455f
inc eax
mov dword [ebp - 0x3c], eax
xor esi, esi
mov eax, esi
shl eax, 4
add eax, esi
mov eax, dword [ebx + eax*4 + 0x10]
test eax, eax
jbe 0x4a5b4555
mov dword [ebp - 0x114c], eax
xor eax, eax
mov dword [ebp - 0x1148], eax
xor eax, eax
mov dword [ebp - 0x30], eax
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x114c]
push eax
push 0x10c
push 0x4a5ed1bc
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x2c]
push eax
mov eax, dword [eax]
call dword [eax + 0xac]
test eax, eax
jne 0x4a5b4555
cmp dword [ebp - 0x30], 0
jne 0x4a5b4555
push 0
lea edx, [ebp - 0x1140]
lea eax, [ebp - 0x20]
mov ecx, 0x80
call fcn.4a5077d4
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x20]
call fcn.4a507ef8
jne 0x4a5b4555
mov eax, esi
shl eax, 4
add eax, esi
mov eax, dword [ebx + eax*4 + 0x10]
mov edx, dword [ebp - 0x24]
mov dword [edx + 0x30], eax
jmp 0x4a5b455f
inc esi
dec dword [ebp - 0x3c]
jne 0x4a5b44d0
push ebx
call sub.kernel32.dll_LocalFree_1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4a5b4579
mov eax, dword [ebp - 0x24]
cmp dword [eax + 0x30], 0
setne bl
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4a5b45f4
lea eax, [ebp - 0x115c]
call fcn.4a507660
lea eax, [ebp - 0x1158]
mov edx, 2
call fcn.4a507678
lea eax, [ebp - 0x1150]
call fcn.4a507660
lea eax, [ebp - 0x20]
mov edx, 2
call fcn.4a5076a8
lea eax, [ebp - 0x18]
mov edx, 4
call fcn.4a507678
lea eax, [ebp - 8]
mov edx, dword [0x4a5b4040]
call fcn.4a50959c
lea eax, [ebp - 4]
mov edx, dword [0x4a5b4010]
call fcn.4a50959c
ret