Function at 0x5327dc
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 0x532c95
push dword fs:[eax]
mov dword fs:[eax], esp
cmp byte [ebp + 8], 0
jne 0x53281b
mov eax, dword [ebp - 4]
test byte [eax + 0x369], 1
je 0x532aea
mov byte [ebp - 5], 0
test bl, bl
je 0x532831
mov dl, 1
mov eax, dword [ebp - 4]
call fcn.00544b54
test al, al
jne 0x532835
xor eax, eax
jmp 0x532837
mov al, 1
mov ebx, eax
mov byte [ebp - 6], 0
mov eax, dword [ebp - 4]
call fcn.0052e408
xor eax, eax
push ebp
push 0x532ae3
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2b0]
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 0x5328a2
test esi, esi
jle 0x53288c
mov eax, dword [ebp - 4]
call fcn.0053200c
mov eax, dword [eax + 0x30]
cmp byte [eax + 0xa1], 0
je 0x5328a2
test esi, esi
jge 0x5328a2
mov eax, dword [ebp - 4]
call fcn.0053200c
mov eax, dword [eax + 0x30]
cmp byte [eax + 0xa0], 0
xor eax, eax
push ebp
push 0x532aa3
push dword fs:[eax]
mov dword fs:[eax], esp
test esi, esi
je 0x532a7f
mov eax, dword [ebp - 4]
test byte [eax + 0x369], 0x10
je 0x5329f1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2b0]
cmp byte [eax + 0x15], 0
je 0x5329f1
test bl, bl
je 0x5329e9
mov eax, dword [ebp - 4]
cmp byte [eax + 0x375], 0
jne 0x532973
lea edx, [ebp - 0x10]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x29c]
call fcn.0052c63c
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 4]
add eax, 0x37c
call fcn.00404ce8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x29c]
call fcn.0052c6ac
mov edx, dword [ebp - 4]
mov byte [edx + 0x496], al
mov eax, dword [ebp - 4]
cmp byte [eax + 0x3f2], 0
je 0x532953
mov eax, dword [ebp - 4]
mov dl, byte [eax + 0x496]
xor dl, 1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x29c]
call fcn.0052c954
jmp 0x532963
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x29c]
mov dl, 1
call fcn.0052c954
mov eax, dword [ebp - 4]
mov byte [eax + 0x375], 1
mov byte [ebp - 5], 1
jmp 0x5329f1
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.0052c63c
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x37c]
mov eax, dword [ebp - 0xc]
call fcn.0052c620
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 0x5329f1
mov eax, dword [ebp - 4]
cmp byte [eax + 0x3f2], 0
je 0x5329dd
mov eax, dword [ebp - 4]
mov dl, byte [eax + 0x496]
mov eax, dword [ebp - 0xc]
call fcn.0052c954
jmp 0x5329f1
xor edx, edx
mov eax, dword [ebp - 0xc]
call fcn.0052c954
jmp 0x5329f1
mov eax, dword [ebp - 4]
call fcn.00532780
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2b0]
call fcn.004cacc4
push eax
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
pop eax
call fcn.004cf8d4
test eax, eax
jne 0x532a2b
call fcn.00404740
call fcn.00404740
jmp 0x532c7a
cmp byte [ebp - 5], 0
je 0x532a69
mov eax, dword [ebp - 4]
cmp byte [eax + 0x3f2], 0
je 0x532a59
mov eax, dword [ebp - 4]
mov dl, byte [eax + 0x496]
xor dl, 1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x29c]
call fcn.0052c954
jmp 0x532a69
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x29c]
mov dl, 1
call fcn.0052c954
cmp byte [ebp + 0xc], 0
jne 0x532a77
test esi, esi
jle 0x532a76
dec esi
jmp 0x532a77
inc esi
test esi, esi
jne 0x5328b8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x532aaa
cmp byte [ebp - 6], 0
je 0x532aa2
mov eax, dword [ebp - 4]
call fcn.0053200c
mov eax, dword [eax + 0x30]
call fcn.004cecd0
ret
test bl, bl
je 0x532afc
mov dl, 2
mov eax, dword [ebp - 4]
call fcn.00544b54
test al, al
jne 0x532b00
xor eax, eax
jmp 0x532b02
mov al, 1
mov ebx, eax
test bl, bl
jne 0x532b22
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2b0]
call fcn.004cacc4
mov edx, esi
call fcn.004cf8d4
jmp 0x532c63
mov eax, dword [ebp - 4]
call fcn.0052e408
xor edx, edx
push ebp
push 0x532c5c
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x378]
cmp byte [eax + 0x10], 2
je 0x532b95
mov eax, dword [eax + 0xc]
call fcn.00546d94
push 1
lea edx, [ebp - 0x18]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2b0]
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.005441f8
mov edx, eax
mov eax, dword [ebp - 4]
call fcn.0052e3a0
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x378]
mov eax, dword [eax + 0xc]
pop ecx
call fcn.005472d0
cmp byte [ebp + 0xc], 0
je 0x532bc8
dec esi
jne 0x532bb3
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2b0]
call fcn.004cacc4
call fcn.004cf838
jmp 0x532bdd
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2b0]
call fcn.004cacc4
call fcn.004cf760
jmp 0x532bdd
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2b0]
call fcn.004cacc4
mov edx, esi
call fcn.004cf8d4
push 1
lea edx, [ebp - 0x1c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2b0]
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.005441f8
mov edx, eax
mov eax, dword [ebp - 4]
call fcn.0052e3a0
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x378]
mov eax, dword [eax + 0xc]
pop ecx
call fcn.005472d0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x532c63
mov eax, dword [ebp - 4]
call fcn.00531ffc
mov eax, dword [ebp - 4]
cmp byte [eax + 0x3b0], 0
jne 0x532c5b
mov eax, dword [ebp - 4]
cmp byte [eax + 0x3e5], 0
je 0x532c5b
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x13c]
ret
mov eax, dword [ebp - 4]
cmp byte [eax + 0x3b0], 0
jne 0x532c7a
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 0x532c9c
lea eax, [ebp - 0x1c]
mov edx, 4
call fcn.00404cb8
ret