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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x90
mov ebx, dword [ebp + 8]
xorps xmm0, xmm0
mov eax, dword [ebp + 0x10]
mov edx, dword [ebp + 0xc]
movaps xmmword [esp + 0x30], xmm0
xorps xmm0, xmm0
movsd qword [esp + 0x40], xmm0
mov dword [esp + 0x48], 0
mov dword [esp + 0x30], 0x14
mov ecx, dword [ebx]
cmp eax, 0x10
mov dword [esp + 0x34], ecx
lea ecx, [esp + 0x30]
mov dword [ebx], ecx
mov ecx, dword [ebx + 8]
mov ecx, dword [ecx + 0x10]
mov ecx, dword [ecx]
mov ecx, 0x10
jl 0x10008679
dec eax
je 0x10008662
bsr eax, eax
xor eax, 0x1f
jmp 0x10008667
mov eax, 0x20
mov ecx, eax
mov esi, 1
neg cl
shl esi, cl
test eax, eax
mov ecx, esi
cmove ecx, eax
mov eax, dword [edx + 8]
mov esi, dword [edx]
mov edi, dword [edx + 4]
inc dword [edx + 0x14]
mov dword [edx + 0x18], 1
mov dword [esp + 0x14], ecx
cmp dword [edx + 0x10], 0
mov dword [esp + 0x18], eax
mov eax, dword [0x101d71a8]
je 0x100086c0
test ecx, ecx
je 0x100086dd
mov edx, dword [esp + 0x18]
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 0x48], edx
mov dword [esp + 0x44], edi
mov dword [esp + 0x40], esi
call sym._jl_alloc_genericmemory
jmp 0x100086e8
mov esi, edx
test ecx, ecx
je 0x100089d6
mov dword [esp + 4], ecx
mov dword [esp], eax
call sym._jl_alloc_genericmemory
mov edi, eax
jmp 0x100089e1
mov eax, dword [eax + 0x10]
test eax, eax
je 0x10008baf
mov ecx, dword [eax]
test ecx, ecx
js 0x10008b69
mov ebx, eax
mov eax, dword [eax + 4]
mov dword [esp + 8], ecx
mov dword [esp + 4], 0
mov dword [esp + 0x7c], eax
mov dword [esp], eax
call sub.msvcrt.dll_memset
mov ecx, dword [esp + 0x14]
mov eax, dword [0x101d6f9c]
mov dword [esp + 0x64], ebx
test ecx, ecx
je 0x10008768
mov edx, dword [esp + 0x18]
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 0x48], edx
mov dword [esp + 0x44], edi
mov dword [esp + 0x40], esi
mov dword [esp + 0x3c], ebx
call sym._jl_alloc_genericmemory
mov edx, dword [0x101d6fa0]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x24], eax
mov dword [esp + 0x38], eax
mov dword [esp + 4], ecx
mov dword [esp], edx
call sym._jl_alloc_genericmemory
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x20], eax
jmp 0x1000878b
mov eax, dword [eax + 0x10]
test eax, eax
mov dword [esp + 0x24], eax
je 0x10008bbe
mov eax, dword [0x101d6fa0]
mov eax, dword [eax + 0x10]
test eax, eax
mov dword [esp + 0x20], eax
je 0x10008bcd
mov eax, dword [ebp + 0xc]
mov edx, dword [esi]
xor ebx, ebx
mov dword [esp + 0x28], 0
mov eax, dword [eax + 0x14]
test edx, edx
cmovle edx, ebx
mov dword [esp + 0x60], eax
jle 0x10008953
mov eax, edi
mov edi, dword [esi + 4]
dec ecx
mov esi, 1
mov dword [esp + 0x28], 0
mov dword [esp + 0x74], edx
mov eax, dword [eax + 4]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x70], edi
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 4]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x20]
add eax, 0x10
mov dword [esp + 0x68], eax
xor eax, eax
jmp 0x100087fd
mov ebx, eax
cmp esi, edx
lea esi, [esi + 1]
je 0x10008953
movzx ebx, byte [esi + edi - 1]
test bl, bl
jns 0x100087f0
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x78]
mov byte [esp + 0x1f], bl
mov eax, dword [eax + esi*4 - 4]
test eax, eax
mov dword [esp + 0x88], eax
je 0x10008b5a
mov eax, dword [esp + 0x6c]
mov edi, dword [esp + 0x7c]
mov edx, dword [eax + esi*4 - 4]
mov eax, edx
mov ecx, edx
mov dword [esp + 0x84], edx
sar eax, 0x1f
not ecx
mov ebx, eax
shld eax, edx, 0x12
shl edx, 0x12
add edx, ecx
not ebx
adc eax, ebx
mov ecx, eax
shr ecx, 0x1f
xor ecx, eax
shld eax, edx, 1
xor eax, edx
lea edx, [ecx + ecx*4]
lea ecx, [ecx + edx*4]
mov edx, 0x15
mul edx
add edx, ecx
mov ecx, edx
shr ecx, 0xb
xor ecx, edx
shld edx, eax, 0x15
mov ebx, ecx
xor eax, edx
shl ebx, 6
add ebx, ecx
mov ecx, 0x41
mul ecx
mov ecx, dword [esp + 0x14]
add edx, ebx
shld edx, eax, 0xa
xor edx, eax
and edx, ecx
cmp byte [edi + edx], 0
lea eax, [edx + 1]
mov ebx, eax
mov dword [esp + 0x80], eax
je 0x100088c5
nop word [eax + eax]
mov edx, ebx
and edx, ecx
cmp byte [edi + edx], 0
lea ebx, [edx + 1]
jne 0x100088b0
add edi, edx
mov dword [esp + 0x2c], edi
jmp 0x100088cd
add edi, edx
mov ebx, eax
mov dword [esp + 0x2c], edi
movzx eax, byte [esp + 0x1f]
mov edi, dword [esp + 0x2c]
sub ebx, dword [esp + 0x80]
mov byte [edi], al
mov eax, dword [esp + 0x18]
and ebx, ecx
mov ecx, dword [esp + 0x84]
cmp eax, ebx
cmovg ebx, eax
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 4]
mov dword [eax + edx*4], ecx
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 4]
mov edi, eax
cmp dword [esp + 0x68], ecx
je 0x10008912
mov edi, dword [eax + 8]
test edi, edi
cmove edi, eax
mov eax, dword [esp + 0x88]
mov dword [ecx + edx*4], eax
mov ecx, dword [edi - 4]
not ecx
test cl, 3
jne 0x1000892e
mov ecx, dword [eax - 4]
test cl, 1
je 0x10008949
inc dword [esp + 0x28]
mov edx, dword [esp + 0x74]
mov edi, dword [esp + 0x70]
mov eax, ebx
cmp esi, edx
lea esi, [esi + 1]
jne 0x100087fd
jmp 0x10008953
mov dword [esp], edi
call sym._ijl_gc_queue_root
jmp 0x1000892e
mov eax, dword [esp + 0x60]
mov esi, dword [ebp + 0xc]
mov edx, dword [esp + 0x64]
inc eax
mov dword [esi + 0x14], eax
mov dword [esi], edx
mov eax, dword [esi - 4]
mov ecx, eax
not ecx
test cl, 3
jne 0x10008989
mov ecx, dword [edx - 4]
mov edi, dword [esp + 0x20]
test cl, 1
jne 0x1000898d
mov dword [esp], esi
call sym._ijl_gc_queue_root
mov eax, dword [esi - 4]
jmp 0x1000898d
mov edi, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov ecx, eax
not ecx
test cl, 3
mov dword [esi + 4], edx
jne 0x100089a9
mov ecx, dword [edx - 4]
test cl, 1
je 0x10008ab6
not eax
mov dword [esi + 8], edi
test al, 3
jne 0x100089bd
mov eax, dword [edi - 4]
test al, 1
je 0x10008ad3
mov eax, dword [esp + 0x28]
mov dword [esi + 0x10], eax
mov dword [esi + 0xc], 0
mov dword [esi + 0x1c], ebx
mov ebx, dword [ebp + 8]
jmp 0x10008aa6
mov edi, dword [eax + 0x10]
test edi, edi
je 0x10008bdc
mov dword [esi], edi
mov eax, esi
mov eax, dword [esi - 4]
not eax
test al, 3
jne 0x100089f9
mov eax, dword [edi - 4]
test al, 1
je 0x10008ae0
mov eax, dword [edi]
test eax, eax
js 0x10008af2
mov ecx, dword [edi + 4]
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov dword [esp], ecx
call sub.msvcrt.dll_memset
mov ecx, dword [esp + 0x14]
mov eax, dword [0x101d6f9c]
test ecx, ecx
je 0x10008a62
mov dword [esp + 4], ecx
mov dword [esp], eax
call sym._jl_alloc_genericmemory
mov dword [esi + 4], eax
mov ecx, dword [esi - 4]
not ecx
test cl, 3
jne 0x10008a4b
mov eax, dword [eax - 4]
test al, 1
je 0x10008b4d
mov eax, dword [0x101d6fa0]
mov ecx, dword [esp + 0x14]
mov dword [esp + 4], ecx
mov dword [esp], eax
call sym._jl_alloc_genericmemory
jmp 0x10008a80
mov eax, dword [eax + 0x10]
test eax, eax
je 0x10008beb
mov dword [esi + 4], eax
mov eax, dword [0x101d6fa0]
mov eax, dword [eax + 0x10]
test eax, eax
je 0x10008bfa
mov dword [esi + 8], eax
mov ecx, dword [esi - 4]
not ecx
test cl, 3
jne 0x10008a98
mov eax, dword [eax - 4]
test al, 1
je 0x10008b40
mov dword [esi + 0xc], 0
mov dword [esi + 0x1c], 0
mov eax, dword [esp + 0x34]
mov dword [ebx], eax
mov eax, esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esp], esi
call sym._ijl_gc_queue_root
mov eax, dword [esi - 4]
not eax
mov dword [esi + 8], edi
test al, 3
jne 0x100089bd
jmp 0x100089b2
mov dword [esp], esi
call sym._ijl_gc_queue_root
jmp 0x100089bd
mov dword [esp], esi
call sym._ijl_gc_queue_root
mov eax, dword [edi]
test eax, eax
jns 0x10008a03
mov ecx, dword [0x101d7174]
mov ebx, dword [0x101d7178]
mov esi, dword [0x101d7320]
mov dword [esp + 0x3c], edi
mov dword [esp], eax
mov dword [esp + 0x18], ecx
call sym._ijl_box_int32
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], esi
mov dword [esp + 0x38], eax
mov dword [esp + 0x5c], eax
lea eax, [esp + 0x54]
mov dword [esp + 8], 3
mov dword [esp + 4], eax
mov eax, dword [esp + 0x18]
mov dword [esp], eax
call dbg.japi1_throw_inexacterror_2543
mov dword [esp], esi
call sym._ijl_gc_queue_root
jmp 0x10008a98
mov dword [esp], esi
call sym._ijl_gc_queue_root
jmp 0x10008a4b
mov eax, dword [sym.imp.libjulia.dll_jl_undefref_exception]
mov eax, dword [eax]
mov dword [esp], eax
call sym._ijl_throw
mov esi, dword [0x101d7174]
mov edi, dword [0x101d7178]
mov ebx, dword [0x101d7320]
mov dword [esp + 0x3c], eax
mov dword [esp], ecx
call sym._ijl_box_int32
mov dword [esp + 0x54], edi
mov dword [esp + 0x58], ebx
mov dword [esp + 0x38], eax
mov dword [esp + 0x5c], eax
lea eax, [esp + 0x54]
mov dword [esp], esi
mov dword [esp + 8], 3
mov dword [esp + 4], eax
call dbg.japi1_throw_inexacterror_2543
mov eax, dword [sym.imp.libjulia.dll_jl_undefref_exception]
mov eax, dword [eax]
mov dword [esp], eax
call sym._ijl_throw
mov eax, dword [sym.imp.libjulia.dll_jl_undefref_exception]
mov eax, dword [eax]
mov dword [esp], eax
call sym._ijl_throw
mov eax, dword [sym.imp.libjulia.dll_jl_undefref_exception]
mov eax, dword [eax]
mov dword [esp], eax
call sym._ijl_throw
mov eax, dword [sym.imp.libjulia.dll_jl_undefref_exception]
mov eax, dword [eax]
mov dword [esp], eax
call sym._ijl_throw
mov eax, dword [sym.imp.libjulia.dll_jl_undefref_exception]
mov eax, dword [eax]
mov dword [esp], eax
call sym._ijl_throw
mov eax, dword [sym.imp.libjulia.dll_jl_undefref_exception]
mov eax, dword [eax]
mov dword [esp], eax
call sym._ijl_throw
nop dword [eax]