Function at 0x542a10
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push ebx
push esi
push edi
mov esi, ecx
mov ebx, edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x542ea9
push dword fs:[eax]
mov dword fs:[eax], esp
cmp byte [ebp + 8], 0
jne 0x542a4f
mov eax, dword [ebp - 4]
test byte [eax + 0x471], 1
je 0x542d14
mov byte [ebp - 5], 0
test bl, bl
je 0x542a65
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.0055b1ac
test al, al
jne 0x542a69
xor eax, eax
jmp 0x542a6b
mov al, 1
mov ebx, eax
mov byte [ebp - 6], 0
mov eax, dword [ebp - 4]
call fcn.0053a7cc
xor eax, eax
push ebp
push 0x542d0d
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x37c]
mov edx, dword [eax]
call dword [edx + 0x38]
mov ecx, eax
mov eax, esi
cdq
xor eax, edx
sub eax, edx
cmp ecx, eax
setle al
or al, byte [ebp + 0xc]
je 0x542ad6
test esi, esi
jle 0x542ac0
mov eax, dword [ebp - 4]
call fcn.0054253c
mov eax, dword [eax + 0x30]
cmp byte [eax + 0xa1], 0
je 0x542ad6
test esi, esi
jge 0x542ad6
mov eax, dword [ebp - 4]
call fcn.0054253c
mov eax, dword [eax + 0x30]
cmp byte [eax + 0xa0], 0
xor eax, eax
push ebp
push 0x542ccd
push dword fs:[eax]
mov dword fs:[eax], esp
test esi, esi
je 0x542ca9
mov eax, dword [ebp - 4]
test byte [eax + 0x471], 0x10
je 0x542c27
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x37c]
cmp byte [eax + 0x15], 0
je 0x542c27
test bl, bl
je 0x542c1f
mov eax, dword [ebp - 4]
cmp byte [eax + 0x47d], 0
jne 0x542ba8
lea edx, [ebp - 0x10]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x364]
call fcn.004eb7e4
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 4]
add eax, 0x484
call fcn.00404e84
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x364]
call fcn.004eb5f4
mov edx, dword [ebp - 4]
mov byte [edx + 0x64e], al
mov eax, dword [ebp - 4]
cmp byte [eax + 0x55e], 0
je 0x542b88
mov eax, dword [ebp - 4]
movzx edx, byte [eax + 0x64e]
xor dl, 1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x364]
mov ecx, dword [eax]
call dword [ecx + 0xc]
jmp 0x542b98
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x364]
mov dl, 1
mov ecx, dword [eax]
call dword [ecx + 0xc]
mov eax, dword [ebp - 4]
mov byte [eax + 0x47d], 1
mov byte [ebp - 5], 1
jmp 0x542c27
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x364]
mov dword [ebp - 0xc], eax
lea edx, [ebp - 0x14]
mov eax, dword [ebp - 0xc]
call fcn.004eb7e4
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x484]
mov eax, dword [ebp - 0xc]
call fcn.004eb84c
mov ecx, eax
mov eax, esi
cdq
xor eax, edx
sub eax, edx
push eax
mov eax, esi
pop edx
mov edi, edx
cdq
idiv edi
neg eax
cmp ecx, eax
setne byte [ebp - 5]
cmp byte [ebp - 5], 0
jne 0x542c27
mov eax, dword [ebp - 4]
cmp byte [eax + 0x55e], 0
je 0x542c13
mov eax, dword [ebp - 4]
movzx edx, byte [eax + 0x64e]
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax]
call dword [ecx + 0xc]
jmp 0x542c27
xor edx, edx
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax]
call dword [ecx + 0xc]
jmp 0x542c27
mov eax, dword [ebp - 4]
call fcn.005429f4
mov eax, esi
cdq
xor eax, edx
sub eax, edx
push eax
mov eax, esi
pop edx
mov ecx, edx
cdq
idiv ecx
mov edx, eax
mov eax, dword [ebp - 4]
call fcn.00565e9c
test eax, eax
jne 0x542c54
call fcn.00404834
call fcn.00404834
jmp 0x542e8e
cmp byte [ebp - 5], 0
je 0x542c93
mov eax, dword [ebp - 4]
cmp byte [eax + 0x55e], 0
je 0x542c83
mov eax, dword [ebp - 4]
movzx edx, byte [eax + 0x64e]
xor dl, 1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x364]
mov ecx, dword [eax]
call dword [ecx + 0xc]
jmp 0x542c93
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x364]
mov dl, 1
mov ecx, dword [eax]
call dword [ecx + 0xc]
cmp byte [ebp + 0xc], 0
jne 0x542ca1
test esi, esi
jle 0x542ca0
dec esi
jmp 0x542ca1
inc esi
test esi, esi
jne 0x542aec
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x542cd4
cmp byte [ebp - 6], 0
je 0x542ccc
mov eax, dword [ebp - 4]
call fcn.0054253c
mov eax, dword [eax + 0x30]
call fcn.0049f7d4
ret
test bl, bl
je 0x542d26
mov dl, 1
mov eax, dword [ebp - 4]
call fcn.0055b1ac
test al, al
jne 0x542d2a
xor eax, eax
jmp 0x542d2c
mov al, 1
mov ebx, eax
test bl, bl
jne 0x542d41
mov edx, esi
mov eax, dword [ebp - 4]
call fcn.00565e9c
jmp 0x542e77
mov eax, dword [ebp - 4]
call fcn.0053a7cc
xor edx, edx
push ebp
push 0x542e70
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x480]
cmp byte [eax + 0x10], 1
je 0x542db4
mov eax, dword [eax + 0xc]
call fcn.0056059c
push 1
lea edx, [ebp - 0x18]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x37c]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x30]
mov ecx, dword [eax]
call dword [ecx + 0x13c]
mov eax, dword [ebp - 0x18]
push eax
mov eax, dword [ebp - 4]
call fcn.0055a94c
mov edx, eax
mov eax, dword [ebp - 4]
call fcn.0053a750
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x480]
mov eax, dword [eax + 0xc]
pop ecx
call fcn.00560ae0
cmp byte [ebp + 0xc], 0
je 0x542de7
dec esi
jne 0x542dd2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x37c]
call fcn.0049ab68
call fcn.004a0364
jmp 0x542df1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x37c]
call fcn.0049ab68
call fcn.004a028c
jmp 0x542df1
mov edx, esi
mov eax, dword [ebp - 4]
call fcn.00565e9c
push 1
lea edx, [ebp - 0x1c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x37c]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x30]
mov ecx, dword [eax]
call dword [ecx + 0x13c]
mov eax, dword [ebp - 0x1c]
push eax
mov eax, dword [ebp - 4]
call fcn.0055a94c
mov edx, eax
mov eax, dword [ebp - 4]
call fcn.0053a750
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x480]
mov eax, dword [eax + 0xc]
pop ecx
call fcn.00560ae0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x542e77
mov eax, dword [ebp - 4]
call fcn.0053a8c0
mov eax, dword [ebp - 4]
cmp byte [eax + 0x4ab], 0
jne 0x542e6f
mov eax, dword [ebp - 4]
cmp byte [eax + 0x4dd], 0
je 0x542e6f
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x260]
ret
mov eax, dword [ebp - 4]
cmp byte [eax + 0x4ab], 0
jne 0x542e8e
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x8c]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x542eb0
lea eax, [ebp - 0x1c]
mov edx, 4
call fcn.00404e54
ret