Function at 0x5342b4
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 0x534758
push dword fs:[eax]
mov dword fs:[eax], esp
cmp byte [ebp + 8], 0
jne 0x5342f3
mov eax, dword [ebp - 4]
test byte [eax + 0x351], 1
je 0x5345d0
mov byte [ebp - 5], 0
test bl, bl
je 0x534309
mov dl, 1
mov eax, dword [ebp - 4]
call fcn.00541b38
test al, al
jne 0x53430d
xor eax, eax
jmp 0x53430f
mov al, 1
mov ebx, eax
mov byte [ebp - 6], 0
mov eax, dword [ebp - 4]
call fcn.005306dc
xor eax, eax
push ebp
push 0x5345c9
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2a8]
mov edx, dword [eax]
call dword [edx + 0x38]
mov ecx, eax
mov eax, esi
cdq
xor eax, edx
sub eax, edx
jno 0x534349
call fcn.00403fe0
cmp ecx, eax
setle al
or al, byte [ebp + 0xc]
je 0x534381
test esi, esi
jle 0x53436b
mov eax, dword [ebp - 4]
call fcn.00533d04
mov eax, dword [eax + 0x30]
cmp byte [eax + 0xa1], 0
je 0x534381
test esi, esi
jge 0x534381
mov eax, dword [ebp - 4]
call fcn.00533d04
mov eax, dword [eax + 0x30]
cmp byte [eax + 0xa0], 0
xor eax, eax
push ebp
push 0x5345ac
push dword fs:[eax]
mov dword fs:[eax], esp
test esi, esi
je 0x534588
mov eax, dword [ebp - 4]
test byte [eax + 0x351], 0x10
je 0x5344e1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2a8]
cmp byte [eax + 0x15], 0
je 0x5344e1
test bl, bl
je 0x5344d9
mov eax, dword [ebp - 4]
cmp byte [eax + 0x35d], 0
jne 0x534455
lea edx, [ebp - 0x10]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x29c]
call fcn.0052ed48
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 4]
add eax, 0x364
call fcn.00404f04
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x29c]
call fcn.0052edb8
mov edx, dword [ebp - 4]
mov byte [edx + 0x449], al
mov eax, dword [ebp - 4]
cmp byte [eax + 0x39e], 0
je 0x534432
mov eax, dword [ebp - 4]
mov dl, byte [eax + 0x449]
xor dl, 1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x29c]
call fcn.0052f068
jmp 0x534442
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x29c]
mov dl, 1
call fcn.0052f068
mov eax, dword [ebp - 4]
mov byte [eax + 0x35d], 1
mov byte [ebp - 5], 1
jmp 0x5344e1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x29c]
mov dword [ebp - 0xc], eax
lea edx, [ebp - 0x14]
mov eax, dword [ebp - 0xc]
call fcn.0052ed48
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x364]
mov eax, dword [ebp - 0xc]
call fcn.0052ed2c
mov ecx, eax
mov eax, esi
cdq
xor eax, edx
sub eax, edx
jno 0x534490
call fcn.00403fe0
push eax
mov eax, esi
pop edx
mov edi, edx
cdq
idiv edi
neg eax
jno 0x5344a2
call fcn.00403fe0
cmp ecx, eax
setne byte [ebp - 5]
cmp byte [ebp - 5], 0
jne 0x5344e1
mov eax, dword [ebp - 4]
cmp byte [eax + 0x39e], 0
je 0x5344cd
mov eax, dword [ebp - 4]
mov dl, byte [eax + 0x449]
mov eax, dword [ebp - 0xc]
call fcn.0052f068
jmp 0x5344e1
xor edx, edx
mov eax, dword [ebp - 0xc]
call fcn.0052f068
jmp 0x5344e1
mov eax, dword [ebp - 4]
call fcn.00534260
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2a8]
call fcn.004f231c
push eax
mov eax, esi
cdq
xor eax, edx
sub eax, edx
jno 0x5344fe
call fcn.00403fe0
push eax
mov eax, esi
pop edx
mov ecx, edx
cdq
idiv ecx
mov edx, eax
pop eax
call fcn.004f7b70
test eax, eax
jne 0x534522
call fcn.00404918
call fcn.00404918
jmp 0x53473d
cmp byte [ebp - 5], 0
je 0x534560
mov eax, dword [ebp - 4]
cmp byte [eax + 0x39e], 0
je 0x534550
mov eax, dword [ebp - 4]
mov dl, byte [eax + 0x449]
xor dl, 1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x29c]
call fcn.0052f068
jmp 0x534560
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x29c]
mov dl, 1
call fcn.0052f068
cmp byte [ebp + 0xc], 0
jne 0x534580
test esi, esi
jle 0x534576
sub esi, 1
jno 0x534574
call fcn.00403fe0
jmp 0x534580
add esi, 1
jno 0x534580
call fcn.00403fe0
test esi, esi
jne 0x534397
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5345b3
cmp byte [ebp - 6], 0
je 0x5345ab
mov eax, dword [ebp - 4]
call fcn.00533d04
mov eax, dword [eax + 0x30]
call fcn.004f6f98
ret
test bl, bl
je 0x5345e2
mov dl, 2
mov eax, dword [ebp - 4]
call fcn.00541b38
test al, al
jne 0x5345e6
xor eax, eax
jmp 0x5345e8
mov al, 1
mov ebx, eax
test bl, bl
jne 0x534608
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2a8]
call fcn.004f231c
mov edx, esi
call fcn.004f7b70
jmp 0x534726
mov eax, dword [ebp - 4]
call fcn.005306dc
xor edx, edx
push ebp
push 0x53471f
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x360]
cmp byte [eax + 0x10], 2
je 0x53467b
mov eax, dword [eax + 0xc]
call fcn.0054359c
push 1
lea edx, [ebp - 0x18]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2a8]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x30]
mov ecx, dword [eax]
call dword [ecx + 0x11c]
mov eax, dword [ebp - 0x18]
push eax
mov eax, dword [ebp - 4]
call fcn.00540fe8
mov edx, eax
mov eax, dword [ebp - 4]
call fcn.0053065c
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x360]
mov eax, dword [eax + 0xc]
pop ecx
call fcn.00543a84
cmp byte [ebp + 0xc], 0
je 0x5346ae
dec esi
jne 0x534699
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2a8]
call fcn.004f231c
call fcn.004f7ad4
jmp 0x5346c3
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2a8]
call fcn.004f231c
call fcn.004f79fc
jmp 0x5346c3
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2a8]
call fcn.004f231c
mov edx, esi
call fcn.004f7b70
push 1
lea edx, [ebp - 0x1c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2a8]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x30]
mov ecx, dword [eax]
call dword [ecx + 0x11c]
mov eax, dword [ebp - 0x1c]
push eax
mov eax, dword [ebp - 4]
call fcn.00540fe8
mov edx, eax
mov eax, dword [ebp - 4]
call fcn.0053065c
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x360]
mov eax, dword [eax + 0xc]
pop ecx
call fcn.00543a84
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x534726
mov eax, dword [ebp - 4]
call fcn.00533cec
ret
mov eax, dword [ebp - 4]
cmp byte [eax + 0x38b], 0
jne 0x53473d
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x88]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x53475f
lea eax, [ebp - 0x1c]
mov edx, 4
call fcn.00404ed4
ret