Function at 0x56830c
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 0x5687c5
push dword fs:[eax]
mov dword fs:[eax], esp
cmp byte [ebp + 8], 0
jne 0x56834b
mov eax, dword [ebp - 4]
test byte [eax + 0x369], 1
je 0x56861a
mov byte [ebp - 5], 0
test bl, bl
je 0x568361
mov dl, 1
mov eax, dword [ebp - 4]
call fcn.0057a634
test al, al
jne 0x568365
xor eax, eax
jmp 0x568367
mov al, 1
mov ebx, eax
mov byte [ebp - 6], 0
mov eax, dword [ebp - 4]
call fcn.00563dd8
xor eax, eax
push ebp
push 0x568613
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 0x5683d2
test esi, esi
jle 0x5683bc
mov eax, dword [ebp - 4]
call fcn.00567b3c
mov eax, dword [eax + 0x30]
cmp byte [eax + 0xa1], 0
je 0x5683d2
test esi, esi
jge 0x5683d2
mov eax, dword [ebp - 4]
call fcn.00567b3c
mov eax, dword [eax + 0x30]
cmp byte [eax + 0xa0], 0
xor eax, eax
push ebp
push 0x5685d3
push dword fs:[eax]
mov dword fs:[eax], esp
test esi, esi
je 0x5685af
mov eax, dword [ebp - 4]
test byte [eax + 0x369], 0x10
je 0x568521
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2b0]
cmp byte [eax + 0x15], 0
je 0x568521
test bl, bl
je 0x568519
mov eax, dword [ebp - 4]
cmp byte [eax + 0x375], 0
jne 0x5684a3
lea edx, [ebp - 0x10]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x29c]
call fcn.00562014
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 4]
add eax, 0x37c
call fcn.00404a88
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x29c]
call fcn.00562084
mov edx, dword [ebp - 4]
mov byte [edx + 0x496], al
mov eax, dword [ebp - 4]
cmp byte [eax + 0x3f2], 0
je 0x568483
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.0056232c
jmp 0x568493
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x29c]
mov dl, 1
call fcn.0056232c
mov eax, dword [ebp - 4]
mov byte [eax + 0x375], 1
mov byte [ebp - 5], 1
jmp 0x568521
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.00562014
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x37c]
mov eax, dword [ebp - 0xc]
call fcn.00561ff8
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 0x568521
mov eax, dword [ebp - 4]
cmp byte [eax + 0x3f2], 0
je 0x56850d
mov eax, dword [ebp - 4]
mov dl, byte [eax + 0x496]
mov eax, dword [ebp - 0xc]
call fcn.0056232c
jmp 0x568521
xor edx, edx
mov eax, dword [ebp - 0xc]
call fcn.0056232c
jmp 0x568521
mov eax, dword [ebp - 4]
call fcn.005682b0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2b0]
call fcn.004addf8
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.004b3478
test eax, eax
jne 0x56855b
call fcn.00404480
call fcn.00404480
jmp 0x5687aa
cmp byte [ebp - 5], 0
je 0x568599
mov eax, dword [ebp - 4]
cmp byte [eax + 0x3f2], 0
je 0x568589
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.0056232c
jmp 0x568599
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x29c]
mov dl, 1
call fcn.0056232c
cmp byte [ebp + 0xc], 0
jne 0x5685a7
test esi, esi
jle 0x5685a6
dec esi
jmp 0x5685a7
inc esi
test esi, esi
jne 0x5683e8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5685da
cmp byte [ebp - 6], 0
je 0x5685d2
mov eax, dword [ebp - 4]
call fcn.00567b3c
mov eax, dword [eax + 0x30]
call fcn.004b28a0
ret
test bl, bl
je 0x56862c
mov dl, 2
mov eax, dword [ebp - 4]
call fcn.0057a634
test al, al
jne 0x568630
xor eax, eax
jmp 0x568632
mov al, 1
mov ebx, eax
test bl, bl
jne 0x568652
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2b0]
call fcn.004addf8
mov edx, esi
call fcn.004b3478
jmp 0x568793
mov eax, dword [ebp - 4]
call fcn.00563dd8
xor edx, edx
push ebp
push 0x56878c
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 0x5686c5
mov eax, dword [eax + 0xc]
call fcn.0057c874
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.00579cd8
mov edx, eax
mov eax, dword [ebp - 4]
call fcn.00563d70
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x378]
mov eax, dword [eax + 0xc]
pop ecx
call fcn.0057cdb0
cmp byte [ebp + 0xc], 0
je 0x5686f8
dec esi
jne 0x5686e3
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2b0]
call fcn.004addf8
call fcn.004b33dc
jmp 0x56870d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2b0]
call fcn.004addf8
call fcn.004b3304
jmp 0x56870d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2b0]
call fcn.004addf8
mov edx, esi
call fcn.004b3478
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.00579cd8
mov edx, eax
mov eax, dword [ebp - 4]
call fcn.00563d70
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x378]
mov eax, dword [eax + 0xc]
pop ecx
call fcn.0057cdb0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x568793
mov eax, dword [ebp - 4]
call fcn.00567b2c
mov eax, dword [ebp - 4]
cmp byte [eax + 0x3b0], 0
jne 0x56878b
mov eax, dword [ebp - 4]
cmp byte [eax + 0x3e5], 0
je 0x56878b
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x138]
ret
mov eax, dword [ebp - 4]
cmp byte [eax + 0x3b0], 0
jne 0x5687aa
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 0x5687cc
lea eax, [ebp - 0x1c]
mov edx, 4
call fcn.00404a58
ret