Function at 0x100ac268
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x54
mov eax, dword [0x10125074]
xor eax, esp
mov dword [esp + 0x50], eax
push ebx
mov ebx, ecx
mov dword [esp + 0xc], edx
push ebp
push esi
push edi
cmp byte [ebx + 0x70], 0
jne 0x100ac495
mov edi, dword [ebx]
mov eax, dword [ebx + 4]
sub eax, edi
mov ecx, dword [esp + 0x18]
cdq
add edi, 0x78
push 0x3c
pop ebp
idiv ebp
mov esi, dword [ecx]
cmp eax, 2
mov eax, dword [ecx + 4]
push 0xfffffffffffffffe
cmovbe edi, dword [ebx + 4]
sub eax, esi
cdq
add esi, 0x78
idiv ebp
cmp eax, 2
cmovbe esi, dword [ecx + 4]
mov ecx, ebx
call fcn.100a80e7
add eax, 0x1c
lea ecx, [esp + 0x28]
push eax
call fcn.100b3fcb
mov eax, ecx
mov ecx, edi
push eax
call fcn.100a6b65
test al, al
je 0x100ac2ec
cmp byte [ebx + 0x70], 0
jne 0x100ac4b0
or eax, 0xffffffff
jmp 0x100ac2ee
xor eax, eax
push eax
mov ecx, ebx
call fcn.100a80e7
push eax
lea ecx, [esp + 0x48]
call fcn.100b3fcb
and dword [esp + 0x20], 0
xor eax, eax
xor ebp, ebp
mov dword [esp + 0x24], eax
and dword [esp + 0x14], eax
mov dword [esp + 0x1c], eax
mov eax, dword [ebx + 4]
sub eax, dword [ebx]
push 0x3c
pop ecx
cdq
idiv ecx
xor edx, edx
cmp eax, 2
lea ecx, [eax - 2]
cmovae edx, ecx
cmp dword [esp + 0x14], edx
jae 0x100ac459
lea eax, [esp + 0x28]
mov ecx, esi
push eax
call fcn.100a6b65
mov byte [esp + 0x13], al
mov ecx, edi
lea eax, [esp + 0x28]
push eax
call fcn.100a6b65
test al, al
je 0x100ac378
cmp byte [esp + 0x13], 0
je 0x100ac451
mov al, byte [edi + 0x38]
test al, al
jne 0x100ac371
cmp byte [esi + 0x38], 1
je 0x100ac459
cmp al, 1
jmp 0x100ac439
cmp byte [esp + 0x13], 0
jne 0x100ac49d
sub esp, 0x1c
mov ecx, esp
push edi
call fcn.100b3fcb
sub esp, 0x1c
lea eax, [esp + 0x7c]
mov ecx, esp
push eax
call fcn.100b3fcb
call fcn.100ab86d
add esp, 0x1c
mov ebp, eax
mov ecx, esp
push esi
call fcn.100b3fcb
sub esp, 0x1c
lea eax, [esp + 0x7c]
mov ecx, esp
push eax
call fcn.100b3fcb
call fcn.100ab86d
add esp, 0x38
mov dword [esp + 0x1c], eax
cmp ebp, eax
jl 0x100ac49d
jg 0x100ac459
sub esp, 0x1c
lea ecx, [edi + 0x1c]
mov edx, esp
push ecx
mov ecx, edx
call fcn.100b3fcb
sub esp, 0x1c
mov ecx, esp
push edi
call fcn.100b3fcb
call fcn.100ab86d
add esp, 0x1c
mov dword [esp + 0x3c], eax
mov edx, esp
lea ecx, [esi + 0x1c]
push ecx
mov ecx, edx
call fcn.100b3fcb
sub esp, 0x1c
mov ecx, esp
push esi
call fcn.100b3fcb
call fcn.100ab86d
add esp, 0x38
mov dword [esp + 0x24], eax
cmp dword [esp + 0x20], eax
jne 0x100ac459
mov cl, byte [edi + 0x38]
test cl, cl
jne 0x100ac436
cmp byte [esi + 0x38], 1
je 0x100ac459
cmp cl, 1
jne 0x100ac441
cmp byte [esi + 0x38], 0
je 0x100ac49d
inc dword [esp + 0x14]
push 0x3c
pop eax
add edi, eax
add esi, eax
jmp 0x100ac315
xor ebp, ebp
inc ebp
and dword [esp + 0x1c], 0
mov eax, dword [ebx + 4]
sub eax, dword [ebx]
push 0x3c
pop ecx
cdq
idiv ecx
xor edx, edx
cmp eax, 2
lea ecx, [eax - 2]
cmovae edx, ecx
cmp dword [esp + 0x14], edx
je 0x100ac49d
cmp dword [esp + 0x1c], ebp
jl 0x100ac491
mov eax, dword [esp + 0x24]
cmp eax, dword [esp + 0x20]
jg 0x100ac491
cmp byte [edi + 0x38], 0
jne 0x100ac49d
cmp byte [esi + 0x38], 1
jne 0x100ac49d
mov edx, dword [esp + 0x18]
push edx
mov ecx, ebx
call fcn.100a8129
mov ecx, dword [esp + 0x60]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.100ba4f0
add esp, 0x54
ret
call fcn.100a80c0
int3