Function at 0x5a3870
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x65a120
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x2c
push ebx
mov ebx, dword [esp + 0x44]
or eax, 0xffffffff
mov edx, dword [esp + 0x48]
mov dword [esp + 0xc], eax
mov dword [esp + 0x14], eax
lea eax, [ebx + ebx*8]
push ebp
shl eax, 4
sub eax, ebx
push esi
mov esi, ecx
xor ebp, ebp
lea eax, [eax + eax*2]
push edi
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x24], ebp
lea ecx, [esi + eax*4]
mov dword [esp + 0x38], ebp
add ecx, ebx
mov dword [esp + 0x34], 0x661a40
mov edi, dword [ecx + edx*4 + 0x545]
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x60]
push eax
push ecx
push ebp
mov dword [esp + 0x50], ebp
call dword [fcn.0065e0c4]
push eax
lea ecx, [esp + 0x38]
call fcn.006440f8
mov ecx, dword [esp + 0x4c]
lea edx, [esp + 0x34]
push edx
call fcn.0064407a
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x30], eax
mov eax, dword [esi + 0x737d]
mov edx, dword [edi + ecx*4 + 0x1a]
mov ecx, esi
lea edi, [edx + eax*4]
mov eax, dword [esp + 0x54]
push eax
push ebp
push ebp
push ebx
call fcn.005b6eb0
mov edx, dword [esi + 0x7375]
mov dword [esp + 0x2c], eax
mov eax, 1
xor ecx, ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], eax
xor eax, eax
cmp edx, ebp
mov dword [esp + 0x50], ecx
mov dword [esp + 0x60], ebp
mov dword [esp + 0x28], eax
jle 0x5a3ad6
mov dword [esp + 0x5c], edi
jmp 0x5a3958
mov ecx, dword [esp + 0x50]
mov edi, dword [edi]
mov edx, 0x6a2cfc
cmp edi, dword [edx]
je 0x5a3b18
cmp dword [esp + 0x10], ebp
je 0x5a397d
mov dword [esp + 0x60], 1
mov dword [esp + 0x10], ebp
mov dword [esp + 0x50], ebp
mov ecx, dword [esi + 0x739d]
mov edx, dword [esp + 0x54]
push edx
mov edi, dword [ecx + eax*4]
mov eax, dword [esp + 0x60]
sub esp, 8
mov ecx, esi
fld dword [eax]
fstp qword [esp]
push ebx
call fcn.005b6eb0
mov ecx, dword [esp + 0x18]
mov ebp, eax
cmp ecx, 0xffffffff
je 0x5a39fb
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x5a39e4
mov eax, dword [esp + 0x5c]
mov edx, 0x6a2cfc
add eax, 0xfffffffc
mov eax, dword [eax]
cmp eax, dword [edx]
je 0x5a39e4
mov edx, dword [esi + 0x73a5]
mov eax, dword [esp + 0x50]
mov dword [esp + 0x1c], 1
mov dword [edx + eax*8], ecx
mov ecx, dword [esp + 0x20]
mov dword [edx + eax*8 + 4], ecx
inc eax
jmp 0x5a39e8
mov eax, dword [esp + 0x50]
mov edx, dword [esi + 0x73a5]
inc eax
mov dword [esp + 0x50], eax
mov dword [edx + eax*8 - 8], edi
mov dword [edx + eax*8 - 4], ebp
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x4c]
push ebp
push edi
push eax
push edi
push ecx
mov ecx, 0x732bc0
mov dword [esp + 0x2c], edi
mov dword [esp + 0x34], ebp
call fcn.00495d40
mov al, byte [esi + 0x726a]
test al, al
je 0x5a3a93
xor edx, edx
mov dl, byte [esi + 0x726c]
cmp edx, ebx
jne 0x5a3a93
movsx eax, word [esi + 0x726e]
cmp eax, dword [esp + 0x54]
jne 0x5a3a93
mov al, byte [esi + 0x726d]
test al, al
jne 0x5a3a93
mov eax, dword [esp + 0x58]
xor ecx, ecx
mov cl, byte [esi + 0x7274]
cmp ecx, eax
jne 0x5a3a93
mov ecx, dword [esp + 0x24]
mov edx, edi
sub edx, ecx
cmp edx, 0x28
jle 0x5a3a93
lea eax, [ebp + 2]
push 3
lea ecx, [edi + 2]
push eax
mov eax, dword [esp + 0x54]
add ebp, 0xfffffffe
push ecx
lea edx, [edi - 2]
push ebp
push edx
push eax
mov ecx, 0x732bc0
call fcn.004961f0
mov dword [esp + 0x24], edi
mov dword [esi + 0x7266], 1
xor ebp, ebp
mov eax, dword [esp + 0x28]
mov edi, dword [esp + 0x5c]
mov ecx, dword [esi + 0x7375]
inc eax
add edi, 4
cmp eax, ecx
mov dword [esp + 0x28], eax
mov dword [esp + 0x5c], edi
jl 0x5a3954
mov eax, dword [esp + 0x50]
cmp eax, 1
jle 0x5a3ad6
mov esi, dword [esi + 0x73a5]
push eax
mov eax, dword [esp + 0x50]
push esi
mov ecx, dword [eax + 4]
push ecx
call dword [fcn.0065e0e0]
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x4c]
push edx
push eax
mov ecx, 0x732bc0
call fcn.00495ca0
mov dword [esp + 0x34], 0x661578
lea ecx, [esp + 0x34]
mov dword [esp + 0x44], 1
call fcn.0064406e
mov ecx, dword [esp + 0x3c]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x38
ret 0x18
cmp dword [esp + 0x60], ebp
je 0x5a3b58
cmp ecx, 1
mov dword [esp + 0x60], ebp
mov dword [esp + 0x10], 1
jle 0x5a3b45
mov eax, dword [esi + 0x73a5]
push ecx
mov ecx, dword [esp + 0x50]
push eax
mov edx, dword [ecx + 4]
push edx
call dword [fcn.0065e0e0]
cmp dword [esp + 0x14], ebp
je 0x5a3a95
mov dword [esp + 0x14], ebp
jmp 0x5a3a95
cmp dword [esp + 0x14], ebp
je 0x5a3a95
mov dword [esp + 0x18], 0xffffffff
jmp 0x5a3a95