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

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 0x14]
sub esp, 0x2c
test eax, eax
je 0x10066e5d
and dword [eax], 0
push ebx
push esi
mov esi, dword [ebp + 8]
mov ecx, dword [esi + 0x14]
mov eax, dword [esi + 0x24]
mov ebx, dword [esi + 0x10]
mov edx, dword [esi + 0x20]
cmp ecx, eax
jb 0x10066e7f
ja 0x10066e78
cmp ebx, edx
jb 0x10066e7f
xor eax, eax
jmp 0x100672fa
sub edx, ebx
sbb eax, ecx
push edi
xor edi, edi
cmp edi, eax
jb 0x10066e94
ja 0x10066e91
cmp dword [ebp + 0x10], edx
jbe 0x10066e94
mov dword [ebp + 0x10], edx
xor edx, edx
cmp dword [ebp + 0x10], edx
je 0x100672ee
mov eax, dword [esi + 0x6c]
mov dword [ebp + 8], eax
shr eax, 1
mov dword [ebp - 4], edx
je 0x10066ed3
mov edi, dword [esi + 0x68]
mov edi, dword [edi + eax*4]
cmp ecx, dword [edi + 0x3c]
ja 0x10066ec3
jb 0x10066ebe
cmp ebx, dword [edi + 0x38]
jae 0x10066ec3
mov dword [ebp + 8], eax
jmp 0x10066ec5
mov edx, eax
mov eax, dword [ebp + 8]
add eax, edx
shr eax, 1
cmp eax, edx
jne 0x10066eac
mov dword [ebp - 4], edx
mov eax, dword [esi + 0x68]
mov edi, dword [eax + edx*4]
sub ebx, dword [edi + 0x38]
mov eax, dword [edi + 0x44]
sbb ecx, dword [edi + 0x3c]
mov dword [ebp - 0x24], ebx
mov edx, ecx
mov ecx, dword [edi + 0x40]
cmp edx, eax
jb 0x10066efc
ja 0x10067245
cmp ebx, ecx
jae 0x10067245
sub ecx, ebx
sbb eax, edx
mov dword [ebp - 0x14], ecx
xor ecx, ecx
cmp ecx, eax
jb 0x10066f19
ja 0x10066f13
mov eax, dword [ebp + 0x10]
cmp eax, dword [ebp - 0x14]
jbe 0x10066f19
mov eax, dword [ebp - 0x14]
mov dword [ebp + 0x10], eax
mov ecx, dword [edi + 0x34]
mov eax, dword [edi + 0x30]
cmp edx, ecx
jb 0x10066f32
ja 0x10066f29
cmp ebx, eax
jb 0x10066f32
mov byte [esi + 0x32], 1
jmp 0x100672f6
sub eax, ebx
sbb ecx, edx
mov ebx, eax
xor eax, eax
cmp eax, ecx
jb 0x10066f48
ja 0x10066f45
cmp dword [ebp + 0x10], ebx
jbe 0x10066f48
mov dword [ebp + 0x10], ebx
cmp byte [edi + 4], 0
jne 0x100672b6
cmp byte [edi], 0
je 0x100672b6
cmp dword [edi + 0x1c], 0
je 0x100672b6
cmp byte [edi + 3], 0
jne 0x100672bc
cmp byte [edi + 5], 0
je 0x10066fe1
mov eax, dword [edi + 0x48]
add eax, dword [ebp - 0x24]
mov ecx, dword [edi + 0x4c]
adc ecx, edx
cmp eax, dword [edi + 0x20]
jne 0x10066f8a
cmp ecx, dword [edi + 0x24]
je 0x10066f9b
push ecx
push eax
mov ecx, edi
call fcn.10066d1a
test eax, eax
jne 0x100672f9
mov eax, dword [edi + 0x1c]
and dword [ebp + 8], 0
mov ecx, dword [eax]
lea edx, [ebp + 8]
push edx
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push eax
call dword [ecx + 0xc]
mov ecx, dword [ebp + 8]
test eax, eax
jne 0x10066fc1
test ecx, ecx
jne 0x10066fc1
mov byte [esi + 0x30], 1
xor edx, edx
add dword [edi + 0x20], ecx
adc dword [edi + 0x24], edx
add dword [esi + 0x10], ecx
adc dword [esi + 0x14], edx
mov edx, dword [ebp + 0x14]
test edx, edx
je 0x100672f9
mov dword [edx], ecx
jmp 0x100672f9
mov eax, dword [esi + 0x10]
sub eax, dword [edi + 0x38]
mov edx, dword [esi + 0x14]
mov ecx, dword [edi + 8]
sbb edx, dword [edi + 0x3c]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 8], ecx
call fcn.100b1970
mov ecx, dword [ebp - 8]
xor ebx, ebx
inc ebx
shl ebx, cl
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], edx
lea ecx, [ebx - 1]
and ecx, dword [ebp - 0x2c]
mov eax, ebx
sub eax, ecx
cmp dword [ebp + 0x10], eax
jbe 0x1006701b
mov dword [ebp + 0x10], eax
mov eax, dword [ebp - 4]
cmp eax, dword [esi + 0x48]
jne 0x10067037
mov eax, dword [ebp - 0x14]
cmp eax, dword [esi + 0x40]
jne 0x10067037
mov eax, dword [ebp - 0x10]
cmp eax, dword [esi + 0x44]
je 0x1006722e
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x14]
shrd edx, eax, 9
mov dword [ebp - 0x1c], edx
shr eax, 9
xor edx, edx
cmp eax, edx
ja 0x100672cd
jb 0x1006705f
mov eax, dword [edi + 0x14]
cmp dword [ebp - 0x1c], eax
jae 0x100672cd
mov eax, dword [edi + 0x10]
mov edx, dword [ebp - 0x1c]
mov eax, dword [eax + edx*4]
cmp dword [eax + 4], 0
je 0x100672cd
mov edx, dword [ebp - 0x14]
mov eax, dword [eax]
and edx, 0x1ff
mov eax, dword [eax + edx*4]
test eax, eax
je 0x100672cd
cmp eax, dword [edi + 0xc]
je 0x100672cd
xor edx, edx
shld edx, eax, 9
shl eax, 9
cmp byte [edi + 2], 0
je 0x10067257
cmp eax, dword [edi + 0x20]
jne 0x100670ae
cmp edx, dword [edi + 0x24]
je 0x100670bf
push edx
push eax
mov ecx, edi
call fcn.10066d1a
test eax, eax
jne 0x100672f9
mov eax, dword [esi + 0x54]
lea ecx, [ebp + 8]
push ecx
push eax
mov ecx, edi
mov dword [ebp + 8], 0x200
call fcn.10066d3c
test eax, eax
jne 0x100672f9
cmp dword [ebp + 8], 0x200
jne 0x100672f6
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x10]
add ecx, 0xfffffff7
call fcn.100b1ad0
mov ecx, dword [esi + 0x54]
mov ecx, dword [ecx]
cmp ecx, eax
jne 0x100672f6
mov eax, dword [esi + 0x54]
mov ecx, dword [eax + 4]
cmp ecx, edx
jne 0x100672f6
mov eax, dword [eax + 8]
mov dword [ebp - 8], eax
cmp eax, 0x80000000
ja 0x100672f6
add eax, 0xc
cmp eax, 0x200
jbe 0x10067177
add eax, 0x1ff
and eax, 0xfffffe00
cmp eax, dword [esi + 0x58]
ja 0x100672f6
add eax, 0xfffffe00
mov dword [ebp + 8], eax
mov dword [ebp - 0xc], eax
lea eax, [ebp + 8]
push eax
mov eax, dword [esi + 0x54]
add eax, 0x200
push eax
mov ecx, edi
call fcn.10066d3c
test eax, eax
jne 0x100672f9
mov eax, dword [ebp - 0xc]
cmp dword [ebp + 8], eax
jne 0x100672f6
mov eax, dword [esi + 0x54]
mov ecx, dword [esi + 0x74]
push 0
push dword [ebp - 8]
add eax, 0xc
push eax
call fcn.10021593
or dword [esi + 0x40], 0xffffffff
or dword [esi + 0x44], 0xffffffff
or dword [esi + 0x48], 0xffffffff
cmp dword [esi + 0x50], ebx
jb 0x10067245
mov eax, dword [esi + 0x7c]
mov ecx, dword [esi + 0x4c]
mov dword [eax + 8], ecx
xor ecx, ecx
mov dword [eax + 0x10], ecx
mov dword [eax + 0xc], ebx
mov eax, dword [esi + 0x84]
push ecx
mov dword [ebp - 0x20], ecx
lea ecx, [ebp - 0x24]
push ecx
push 0
push dword [esi + 0x80]
mov dword [ebp - 0x24], ebx
push dword [esi + 0x78]
mov edx, dword [eax]
push eax
call dword [edx + 0xc]
mov dword [ebp + 8], eax
mov eax, dword [esi + 0x7c]
cmp dword [eax + 0x10], ebx
jne 0x10067200
mov eax, dword [esi + 0x84]
mov ecx, dword [eax + 0x10]
add ecx, 0x48
call fcn.100108f7
push 0
add eax, 2
pop ecx
adc edx, ecx
cmp eax, dword [ebp - 8]
jne 0x10067200
cmp edx, ecx
je 0x10067212
xor ecx, ecx
mov byte [esi + 0x32], 1
cmp dword [ebp + 8], ecx
jne 0x1006724f
mov dword [ebp + 8], 1
cmp dword [ebp + 8], ecx
jne 0x1006724f
mov eax, dword [ebp - 0x14]
mov dword [esi + 0x40], eax
mov eax, dword [ebp - 0x10]
mov dword [esi + 0x44], eax
mov eax, dword [ebp - 4]
mov dword [esi + 0x48], eax
jmp 0x10066fe1
mov eax, dword [esi + 0x4c]
mov edi, dword [ebp + 0x10]
push edi
add eax, ecx
push eax
push dword [ebp + 0xc]
call fcn.100b0db0
jmp 0x100672db
mov eax, 0x80004005
jmp 0x100672f9
mov eax, dword [ebp + 8]
jmp 0x100672f9
add eax, ecx
adc edx, 0
cmp eax, dword [edi + 0x20]
jne 0x10067266
cmp edx, dword [edi + 0x24]
je 0x10067277
push edx
push eax
mov ecx, edi
call fcn.10066d1a
test eax, eax
jne 0x100672f9
mov eax, dword [edi + 0x1c]
and dword [ebp + 8], 0
mov ecx, dword [eax]
lea edx, [ebp + 8]
push edx
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push eax
call dword [ecx + 0xc]
mov edx, dword [ebp + 8]
test eax, eax
jne 0x1006729d
test edx, edx
jne 0x1006729d
mov byte [esi + 0x30], 1
xor ecx, ecx
add dword [edi + 0x20], edx
adc dword [edi + 0x24], ecx
add dword [esi + 0x10], edx
adc dword [esi + 0x14], ecx
mov ecx, dword [ebp + 0x14]
test ecx, ecx
je 0x100672f9
mov dword [ecx], edx
jmp 0x100672f9
cmp byte [edi + 3], 0
je 0x100672c2
mov byte [esi + 0x31], 1
jmp 0x100672f6
cmp byte [edi], 0
je 0x100672f2
cmp dword [edi + 0x1c], 0
je 0x100672f2
mov edi, dword [ebp + 0x10]
push edi
push 0
push dword [ebp + 0xc]
call fcn.100b18c0
mov eax, dword [ebp + 0x14]
add esp, 0xc
add dword [esi + 0x10], edi
adc dword [esi + 0x14], 0
test eax, eax
je 0x100672ee
mov dword [eax], edi
xor eax, eax
jmp 0x100672f9
mov byte [esi + 0x30], 1
xor eax, eax
inc eax
pop edi
pop esi
pop ebx
leave
ret 0x10