Function at 0x10174040
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10265d21
mov eax, dword fs:[0]
push eax
sub esp, 0x24
push ebx
push esi
push edi
mov eax, dword [0x10583760]
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 0x10174093
mov edi, dword [eax + 0x1c]
mov eax, dword [eax + 0x20]
inc eax
mov dword [ebp - 0x24], 1
jmp 0x101740a0
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 0x10174247
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 0x1017422b
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 0x1017410f
mov eax, edi
cdq
idiv ecx
mov edx, eax
jmp 0x10174125
mov eax, ecx
test ecx, ecx
js 0x1017411a
sub eax, edi
dec eax
jmp 0x1017411e
not eax
sub eax, edi
cdq
idiv ecx
mov edx, eax
neg edx
imul edx, ecx
mov eax, edi
sub eax, edx
jne 0x10174222
mov eax, dword [ebp - 0x14]
mov esi, dword [ebx + 0x10]
mov ebx, dword [eax + 8]
mov edx, dword [ebx + 0x34]
test edx, edx
js 0x1017414b
mov eax, edx
cdq
idiv esi
mov ebx, eax
jmp 0x10174163
test esi, esi
js 0x10174156
mov eax, esi
sub eax, edx
dec eax
jmp 0x1017415c
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 0x1017417b
mov eax, edx
cdq
idiv esi
test esi, esi
mov esi, eax
jmp 0x10174193
test esi, esi
js 0x10174186
mov eax, esi
sub eax, edx
dec eax
jmp 0x1017418c
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 0x101741c0
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.1018e230
mov esi, dword [ebp - 0x1c]
add esp, 0x10
inc esi
jmp 0x101740c6
test edi, edi
js 0x101741cb
mov eax, edi
cdq
idiv ecx
jmp 0x101741df
mov eax, ecx
test ecx, ecx
js 0x101741d6
sub eax, edi
dec eax
jmp 0x101741da
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.1018da20
mov esi, dword [ebp - 0x1c]
add esp, 0x18
mov ebx, dword [ebp - 0x14]
inc esi
jmp 0x101740c6
mov ebx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebx + 0xc]
cmp dword [eax + 0x10], ecx
jae 0x1017423c
mov dword [eax + 0x10], ecx
add edi, dword [ebp - 0x24]
mov eax, dword [ebp - 0x28]
jmp 0x101740a3
mov ecx, dword [ebx + 0xc]
cmp edi, dword [ecx + 0x14]
jl 0x10174254
cmp edi, dword [ecx + 0x18]
jle 0x1017429f
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 0x10174298
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 0x101742b1
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 0x10174298
push edx
push dword [ecx + 0x18]
push dword [ecx + 0x14]
push ecx
push eax
call fcn.10175190
add esp, 0x14
jmp 0x10174298