Function at 0x58f975
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x68d51b
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xb0
push ebx
push ebp
push esi
xor ebx, ebx
push edi
lea ecx, [esp + 0x40]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
mov byte [esp + 0x10], bl
mov byte [esp + 0x11], bl
mov byte [esp + 0x12], bl
mov byte [esp + 0x13], bl
mov byte [esp + 0x14], bl
call fcn.0066c92c
lea eax, [esp + 0x18]
mov dword [esp + 0xc8], ebx
push eax
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x24], 0x280
mov dword [esp + 0x20], ebx
mov dword [esp + 0x28], 0x1e0
call fcn.005f704c
add esp, 4
mov ecx, 0x71f9a0
call fcn.0066c59c
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x20]
mov edi, dword [esp + 0xd0]
lea ecx, [esp + 0x30]
mov si, ax
push ecx
mov eax, dword [edi + 0x7c]
mov ecx, edi
and esi, 0xffff
mov dword [esp + 0x2c], eax
call fcn.00570e81
mov edx, dword [eax]
mov dword [esp + 0x18], edx
mov ecx, dword [eax + 4]
mov dword [esp + 0x1c], ecx
lea ecx, [esp + 0x18]
mov edx, dword [eax + 8]
push ecx
mov dword [esp + 0x24], edx
lea edx, [esp + 0x34]
mov eax, dword [eax + 0xc]
push edx
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0xdc]
lea ecx, [eax + 0x30f44]
call fcn.00574d22
mov ecx, dword [eax]
mov dword [esp + 0x18], ecx
mov ecx, 0x71ddc0
mov ebp, dword [eax + 4]
mov dword [esp + 0x1c], ebp
mov edx, dword [eax + 8]
mov dword [esp + 0x20], edx
mov eax, dword [eax + 0xc]
mov byte [esp + 0x12], bl
mov dword [esp + 0x24], eax
mov byte [esp + 0x11], bl
mov byte [esp + 0x10], bl
mov byte [esp + 0x13], bl
call fcn.0048028b
imul eax, esi
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
add eax, ecx
sub esp, 8
mov ecx, esp
mov dword [esp + 0x2c], eax
mov al, byte [esp + 0x1c]
mov dword [ecx], edx
mov byte [ecx + 4], al
lea ecx, [esp + 0x20]
push ecx
call fcn.005f6f4f
mov eax, dword [edi + 0x61]
add esp, 0xc
cmp eax, 1
mov byte [esp + 0x12], 0xff
mov byte [esp + 0x11], 0xff
mov byte [esp + 0x10], 0xff
mov byte [esp + 0x13], bl
jne 0x58fba0
mov ecx, dword [esp + 0x28]
mov edx, dword [ecx]
call dword [edx + 0x28]
sub ebp, eax
mov dword [esp + 0x1c], ebp
lea eax, [esi + ebp]
xor ebp, ebp
mov dword [esp + 0x24], eax
call dword [edi + 0x80]
test eax, eax
jle 0x58fba0
push 0x200
push 0x71f700
push ebp
call dword [edi + 0x84]
add esp, 4
push eax
call fcn.0059b291
add esp, 0xc
test eax, eax
je 0x58fb91
mov ecx, 0x71ddc0
call fcn.004802cc
cmp ebp, eax
mov byte [esp + 0x12], 0xff
jne 0x58fb40
mov byte [esp + 0x11], 0x32
mov byte [esp + 0x10], 0x32
jmp 0x58fb4a
mov byte [esp + 0x11], 0xff
mov byte [esp + 0x10], 0xff
lea ecx, [esp + 0x10]
lea edx, [esp + 0x28]
push ecx
push edx
mov ecx, 0x71f9a0
mov byte [esp + 0x1b], bl
call fcn.0066c4bb
push ebx
push 0x71f9a0
lea eax, [esp + 0x20]
push 0x71f700
lea ecx, [esp + 0x38]
push eax
push ecx
lea ecx, [esp + 0x54]
call fcn.0066cb08
mov eax, dword [esp + 0x1c]
add eax, esi
mov dword [esp + 0x1c], eax
lea edx, [esi + eax]
mov dword [esp + 0x24], edx
inc ebp
call dword [edi + 0x80]
cmp ebp, eax
jl 0x58fb00
lea eax, [esp + 0x10]
lea ecx, [esp + 0x2c]
push eax
push ecx
mov ecx, 0x71f9a0
mov byte [esp + 0x1a], 0xff
mov byte [esp + 0x19], 0xff
mov byte [esp + 0x18], 0xff
mov byte [esp + 0x1b], bl
call fcn.0066c4bb
lea ecx, [esp + 0x40]
mov dword [esp + 0xc8], 0xffffffff
call fcn.0066c9e0
mov ecx, dword [esp + 0xc0]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0xbc
ret