Function at 0x10179890
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1024bc71
mov eax, dword fs:[0]
push eax
sub esp, 0x24
push ebx
push esi
push edi
mov eax, dword [0x105436c4]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov ebx, ecx
mov dword [ebp - 0x14], ebx
mov eax, dword [ebx + 8]
mov dword [ebp - 4], 0
cmp dword [eax + 0x30], 0
mov eax, dword [ebx + 0xc]
jne 0x101798e3
mov edi, dword [eax + 0x1c]
mov eax, dword [eax + 0x20]
inc eax
mov dword [ebp - 0x24], 1
jmp 0x101798f0
mov edi, dword [eax + 0x20]
mov eax, dword [eax + 0x1c]
dec eax
or ecx, 0xffffffff
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x28], eax
cmp edi, eax
je 0x10179a97
mov eax, dword [ebx + 0xc]
mov ecx, edi
mov edx, dword [eax + 4]
mov eax, dword [ebx + 8]
sub ecx, dword [eax + 0x3c]
mov eax, dword [eax + 0x5c]
mov eax, dword [eax + ecx*4]
add eax, edx
xor esi, esi
mov dword [ebp - 0x20], eax
mov ebx, dword [ebx + 8]
mov eax, 0x92492493
mov dword [ebp - 0x1c], esi
mov ecx, dword [ebx + 0x70]
sub ecx, dword [ebx + 0x6c]
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jae 0x10179a7b
mov eax, dword [ebx + 0x6c]
lea ecx, [esi*8]
sub ecx, esi
lea ebx, [eax + ecx*4]
mov ecx, dword [ebx + 0x14]
mov dword [ebp - 0x18], ebx
test edi, edi
js 0x1017995f
mov eax, edi
cdq
idiv ecx
mov edx, eax
jmp 0x10179975
mov eax, ecx
test ecx, ecx
js 0x1017996a
sub eax, edi
dec eax
jmp 0x1017996e
not eax
sub eax, edi
cdq
idiv ecx
mov edx, eax
neg edx
imul edx, ecx
mov eax, edi
sub eax, edx
jne 0x10179a72
mov eax, dword [ebp - 0x14]
mov esi, dword [ebx + 0x10]
mov ebx, dword [eax + 8]
mov edx, dword [ebx + 0x34]
test edx, edx
js 0x1017999b
mov eax, edx
cdq
idiv esi
mov ebx, eax
jmp 0x101799b3
test esi, esi
js 0x101799a6
mov eax, esi
sub eax, edx
dec eax
jmp 0x101799ac
not edx
sub edx, esi
mov eax, edx
cdq
idiv esi
mov ebx, eax
neg ebx
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 8]
mov edx, dword [eax + 0x38]
test edx, edx
js 0x101799cb
mov eax, edx
cdq
idiv esi
test esi, esi
mov esi, eax
jmp 0x101799e3
test esi, esi
js 0x101799d6
mov eax, esi
sub eax, edx
dec eax
jmp 0x101799dc
not edx
sub edx, esi
mov eax, edx
cdq
idiv esi
mov esi, eax
neg esi
mov eax, dword [ebp - 0x18]
cmp byte [eax + 0x18], 0
je 0x10179a10
sub esi, ebx
mov ebx, dword [ebp - 0x14]
inc esi
push esi
push dword [eax]
mov eax, dword [ebx + 8]
push dword [eax + 0x68]
lea eax, [ebp - 0x20]
push eax
call fcn.10193a80
mov esi, dword [ebp - 0x1c]
add esp, 0x10
inc esi
jmp 0x10179916
test edi, edi
js 0x10179a1b
mov eax, edi
cdq
idiv ecx
jmp 0x10179a2f
mov eax, ecx
test ecx, ecx
js 0x10179a26
sub eax, edi
dec eax
jmp 0x10179a2a
not eax
sub eax, edi
cdq
idiv ecx
neg eax
mov edx, dword [ebp - 0x18]
mov ecx, dword [edx + 0xc]
imul ecx, eax
add ecx, dword [edx + 4]
mov edx, dword [edx + 8]
mov eax, edx
imul eax, ebx
add eax, ecx
mov dword [ebp - 0x2c], eax
mov eax, edx
imul eax, esi
add eax, ecx
mov ecx, dword [ebp - 0x18]
push dword [ecx]
mov ecx, dword [ebp - 0x14]
mov ebx, dword [ecx + 8]
push dword [ebx + 0x68]
push edx
push eax
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.10193270
mov esi, dword [ebp - 0x1c]
add esp, 0x18
mov ebx, dword [ebp - 0x14]
inc esi
jmp 0x10179916
mov ebx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebx + 0xc]
cmp dword [eax + 0x10], ecx
jae 0x10179a8c
mov dword [eax + 0x10], ecx
add edi, dword [ebp - 0x24]
mov eax, dword [ebp - 0x28]
jmp 0x101798f3
mov ecx, dword [ebx + 0xc]
cmp edi, dword [ecx + 0x14]
jl 0x10179aa4
cmp edi, dword [ecx + 0x18]
jle 0x10179aef
mov eax, dword [ecx + 4]
mov dword [ecx + 8], eax
mov ecx, dword [ebx + 0xc]
mov eax, dword [ecx + 0x10]
sub eax, dword [ecx + 4]
mov dword [ecx + 0xc], eax
mov edx, dword [ebx + 0xc]
mov ecx, dword [edx + 0x24]
test ecx, ecx
je 0x10179ae8
mov eax, dword [ecx]
lea esi, [ebp - 0x2c]
push esi
push dword [edx + 0x14]
push dword [edx + 0xc]
push dword [edx + 8]
call dword [eax + 0xc]
mov ecx, dword [ebx + 0xc]
mov edx, dword [ecx + 0xc]
cmp eax, edx
jge 0x10179b01
mov dword [ecx + 0xc], eax
mov ecx, dword [ebx + 0xc]
mov eax, dword [ebp - 0x2c]
mov dword [ecx + 8], eax
mov eax, dword [ebx + 0xc]
mov byte [eax + 0x28], 0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebx + 8]
cmp dword [eax + 0x68], 0
jne 0x10179ae8
push edx
push dword [ecx + 0x18]
push dword [ecx + 0x14]
push ecx
push eax
call fcn.1017a9e0
add esp, 0x14
jmp 0x10179ae8