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

Disassembly:
push ebp
lea ebp, [esp - 0x70]
sub esp, 0x70
push 0xffffffffffffffff
push 0x101a1f15
mov eax, dword fs:[0]
push eax
sub esp, 0x48
mov eax, dword [0x101df584]
xor eax, ebp
mov dword [ebp + 0x6c], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [ebp - 0x18], ebx
mov eax, dword [ebp + 0x78]
mov esi, dword [ebx + 0x20]
mov edx, dword [ebx + 0x8c]
mov dword [ebp + 0x30], eax
mov eax, dword [ebp + 0x7c]
mov dword [ebp + 0x10], eax
mov eax, dword [ebx + 8]
mov dword [ebp + 0x48], edx
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0x20]
mov dword [ebp + 0x34], ecx
mov edi, dword [ecx + 0xec]
mov ecx, dword [ecx + 0xe8]
mov eax, dword [eax + 0x14]
mov dword [ebp + 0x38], ecx
mov dword [ebp - 0x10], ecx
mov ecx, esi
sub ecx, dword [esi]
mov dword [ebp + 0x28], eax
mov eax, dword [ebx + 0x7c]
mov dword [ebp + 0x50], eax
movzx eax, word [ecx]
mov dword [ebp + 0x2c], 0xa
cmp word [ebp + 0x2c], ax
jae 0x100f0409
movzx eax, word [ecx + 0xa]
test ax, ax
je 0x100f0409
mov esi, dword [eax + esi]
jmp 0x100f040e
mov esi, 1
push 1
push ecx
mov dword [esp], 0x3f800000
lea ecx, [ebp - 0x54]
push esi
push edx
mov dword [ebp + 0x14], esi
call sym.MNN.dll_public:_void___thiscall_MNN::Math::WinogradGenerater::constructor_int__int__float__bool_
lea eax, [ebp + 0x2c]
mov dword [ebp - 4], 0
push eax
lea eax, [ebp]
push eax
lea eax, [ebp - 0x1c]
push eax
mov eax, dword [ebp + 0x34]
mov eax, dword [eax + 4]
call eax
mov eax, dword [ebp + 0x48]
dec eax
add esi, eax
mov eax, esi
imul eax, esi
push esi
push esi
mov dword [ebp + 0x4c], eax
mov eax, dword [ebp + 0x34]
mov eax, dword [eax + 0x178]
call eax
push dword [ebp + 0x48]
mov dword [ebx + 0x60], eax
mov eax, dword [ebp + 0x34]
push esi
push 9
push dword [ebx + 0x64]
mov eax, dword [eax + 0x17c]
call eax
mov esi, dword [ebp + 0x30]
add esp, 0x24
mov ecx, esi
call sym.MNN.dll_public:_enum_MNN::Tensor::DimensionType___thiscall_MNN::Tensor::getDimensionType_void_
mov ecx, dword [esi + 0x18]
test eax, eax
jne 0x100f048e
mov esi, dword [ecx + 0x34]
mov dword [ebp + 0x48], esi
jmp 0x100f0494
mov eax, dword [ecx + 0x14]
mov dword [ebp + 0x48], eax
mov esi, dword [ebp + 0x10]
mov ecx, esi
call sym.MNN.dll_public:_enum_MNN::Tensor::DimensionType___thiscall_MNN::Tensor::getDimensionType_void_
mov ecx, dword [esi + 0x18]
test eax, eax
jne 0x100f04aa
mov esi, dword [ecx + 0x34]
jmp 0x100f04ad
mov esi, dword [ecx + 0x14]
mov eax, dword [ebp + 0x48]
dec eax
mov dword [ebp + 0x30], esi
add eax, edi
cdq
idiv edi
mov ecx, eax
lea eax, [edi - 1]
add eax, esi
mov esi, dword [ebp + 0x38]
cdq
idiv edi
mov dword [ebp + 0x68], esi
add ecx, eax
mov eax, dword [ebp + 0x4c]
imul eax, edi
cmp byte [ebx + 0x78], 0
mov dword [ebp + 0x60], ecx
lea ecx, [ebp + 0x6c]
mov dword [ebp + 0x64], eax
lea eax, [ebp + 0x57]
push eax
push ecx
lea ecx, [ebp + 0x3c]
je 0x100f05bd
mov edx, dword [ebp + 0x50]
mov dword [ebp + 0x5c], edx
lea edx, [ebp + 0x58]
push edx
mov dword [ebp + 0x58], 1
call fcn.1000a980
push 0
mov dword [ebp + 0x50], 0x10801
lea eax, [ebp + 0x3c]
push dword [ebp + 0x50]
mov byte [ebp - 4], 1
push eax
call sym.MNN.dll_public:_static_class_MNN::Tensor____cdecl_MNN::Tensor::createDevice_class_std::vector_int__class_std::allocator_int___const___struct_halide_type_t__enum_MNN::Tensor::DimensionType_
add esp, 0xc
lea ecx, [ebx + 0x44]
push eax
call fcn.10022690
lea ecx, [ebp + 0x3c]
mov byte [ebp - 4], 0
call fcn.10002ec0
mov eax, dword [ebp + 0x4c]
lea ecx, [ebp + 0x6c]
mov edx, dword [ebp + 0x28]
mov dword [ebp + 0x60], eax
lea eax, [ebp + 0x57]
push eax
mov dword [ebp + 0x58], edx
lea edx, [ebp + 0x58]
push ecx
push edx
lea ecx, [ebp + 0x3c]
mov dword [ebp + 0x5c], 2
mov dword [ebp + 0x64], edi
mov dword [ebp + 0x68], esi
call fcn.1000a980
push 0
mov dword [ebp + 0x50], 0x10801
lea eax, [ebp + 0x3c]
push dword [ebp + 0x50]
mov byte [ebp - 4], 2
push eax
call sym.MNN.dll_public:_static_class_MNN::Tensor____cdecl_MNN::Tensor::createDevice_class_std::vector_int__class_std::allocator_int___const___struct_halide_type_t__enum_MNN::Tensor::DimensionType_
add esp, 0xc
lea ecx, [ebx + 0x4c]
push eax
call fcn.10022690
lea ecx, [ebp + 0x3c]
mov byte [ebp - 4], 0
call fcn.10002ec0
lea eax, [ebp + 0x57]
mov dword [ebp + 0x4c], esi
push eax
lea ecx, [ebp + 0x50]
push ecx
lea edx, [ebp + 0x4c]
push edx
lea ecx, [ebp + 0x3c]
call fcn.1000a980
mov dword [ebp + 0x50], 0x10801
push 0
push dword [ebp + 0x50]
mov byte [ebp - 4], 3
jmp 0x100f0688
mov edx, dword [ebp + 0x28]
mov dword [ebp + 0x58], edx
mov edx, dword [ebp + 0x50]
mov dword [ebp + 0x5c], edx
lea edx, [ebp + 0x58]
push edx
call fcn.1000a980
push 0
mov dword [ebp + 0x50], 0x10801
lea eax, [ebp + 0x3c]
push dword [ebp + 0x50]
mov byte [ebp - 4], 4
push eax
call sym.MNN.dll_public:_static_class_MNN::Tensor____cdecl_MNN::Tensor::createDevice_class_std::vector_int__class_std::allocator_int___const___struct_halide_type_t__enum_MNN::Tensor::DimensionType_
add esp, 0xc
lea ecx, [ebx + 0x44]
push eax
call fcn.10022690
lea ecx, [ebp + 0x3c]
mov byte [ebp - 4], 0
call fcn.10002ec0
mov eax, dword [ebp + 0x28]
lea ecx, [ebp + 0x6c]
mov dword [ebp + 0x58], eax
lea edx, [ebp + 0x58]
mov eax, dword [ebp + 0x4c]
mov dword [ebp + 0x60], eax
lea eax, [ebp + 0x57]
push eax
push ecx
push edx
lea ecx, [ebp + 0x3c]
mov dword [ebp + 0x5c], 2
mov dword [ebp + 0x64], edi
mov dword [ebp + 0x68], esi
call fcn.1000a980
push 0
mov dword [ebp + 0x4c], 0x10801
lea eax, [ebp + 0x3c]
push dword [ebp + 0x4c]
mov byte [ebp - 4], 5
push eax
call sym.MNN.dll_public:_static_class_MNN::Tensor____cdecl_MNN::Tensor::createDevice_class_std::vector_int__class_std::allocator_int___const___struct_halide_type_t__enum_MNN::Tensor::DimensionType_
add esp, 0xc
lea ecx, [ebx + 0x4c]
push eax
call fcn.10022690
lea ecx, [ebp + 0x3c]
mov byte [ebp - 4], 0
call fcn.10002ec0
lea eax, [ebp + 0x57]
mov dword [ebp + 0x28], esi
push eax
lea ecx, [ebp + 0x2c]
push ecx
lea edx, [ebp + 0x28]
push edx
lea ecx, [ebp + 0x3c]
call fcn.1000a980
push 0
mov dword [ebp + 0x4c], 0x10801
push dword [ebp + 0x4c]
mov byte [ebp - 4], 6
lea eax, [ebp + 0x3c]
push eax
call sym.MNN.dll_public:_static_class_MNN::Tensor____cdecl_MNN::Tensor::createDevice_class_std::vector_int__class_std::allocator_int___const___struct_halide_type_t__enum_MNN::Tensor::DimensionType_
add esp, 0xc
lea ecx, [ebx + 0x54]
push eax
call fcn.10022690
lea ecx, [ebp + 0x3c]
call fcn.10002ec0
mov ecx, dword [ebp - 0x50]
mov eax, dword [ebx + 0x84]
mov dword [ebp + 0x2c], eax
test ecx, ecx
je 0x100f06bc
lock inc dword [ecx + 4]
mov ecx, dword [ebp - 0x50]
mov edi, dword [ebx + 0x38]
or esi, 0xffffffff
mov eax, dword [ebp - 0x54]
mov dword [ebx + 0x34], eax
mov dword [ebx + 0x38], ecx
test edi, edi
je 0x100f06ee
mov eax, esi
lock xadd dword [edi + 4], eax
jne 0x100f06ee
mov eax, dword [edi]
mov ecx, edi
call dword [eax]
mov eax, esi
lock xadd dword [edi + 8], eax
jne 0x100f06ee
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
mov ecx, dword [ebp - 0x30]
test ecx, ecx
je 0x100f06fc
lock inc dword [ecx + 4]
mov ecx, dword [ebp - 0x30]
mov edi, dword [ebx + 0x40]
mov eax, dword [ebp - 0x34]
mov dword [ebx + 0x3c], eax
mov dword [ebx + 0x40], ecx
test edi, edi
je 0x100f072b
mov eax, esi
lock xadd dword [edi + 4], eax
jne 0x100f072b
mov eax, dword [edi]
mov ecx, edi
call dword [eax]
mov eax, esi
lock xadd dword [edi + 8], eax
jne 0x100f072b
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
mov ecx, dword [ebp - 0x40]
mov dword [ebp + 0x4c], ecx
test ecx, ecx
je 0x100f073f
lock inc dword [ecx + 4]
mov ecx, dword [ebp - 0x40]
mov dword [ebp + 0x4c], ecx
mov eax, dword [ebp - 0x44]
mov dword [ebp + 0x24], eax
mov dword [ebp + 0x28], ecx
mov eax, dword [ebp + 0x30]
lea ecx, [ebp + 0x6c]
mov dword [ebp + 0x5c], eax
lea edx, [ebp + 0x5c]
mov eax, dword [ebp + 0x48]
mov dword [ebp + 0x60], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp + 0x64], eax
mov dword [ebp + 0x68], eax
lea eax, [ebp + 0x57]
push eax
push ecx
push edx
lea ecx, [ebp + 0x3c]
mov byte [ebp - 4], 7
call fcn.1000a980
push 1
push dword [ebx + 0x90]
mov dword [ebp + 0x48], 0x12002
push dword [ebp + 0x48]
mov byte [ebp - 4], 8
push eax
call sym.MNN.dll_public:_static_class_MNN::Tensor____cdecl_MNN::Tensor::create_class_std::vector_int__class_std::allocator_int___const___struct_halide_type_t__void___enum_MNN::Tensor::DimensionType_
add esp, 0x10
lea ecx, [ebp + 0xc]
push eax
call fcn.10015560
mov ecx, dword [ebp + 0x3c]
mov byte [ebp - 4], 0xa
test ecx, ecx
je 0x100f07f6
mov eax, dword [ebp + 0x44]
sub eax, ecx
sar eax, 2
lea edx, [eax*4]
mov eax, ecx
cmp edx, 0x1000
jb 0x100f07d7
mov ecx, dword [eax - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x100f07d7
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push edx
push ecx
call fcn.10196271
add esp, 8
mov dword [ebp + 0x3c], 0
mov dword [ebp + 0x40], 0
mov dword [ebp + 0x44], 0
push 1
push dword [ebp + 0x2c]
lea eax, [ebp + 4]
push dword [ebp]
lea ecx, [ebp - 0x54]
push dword [ebp + 0xc]
push eax
call sym.MNN.dll_public:_class_std::shared_ptr_class_MNN::Tensor____thiscall_MNN::Math::WinogradGenerater::allocTransformWeight_class_MNN::Tensor_const___int__int__bool_
mov ecx, dword [ebp + 4]
lea eax, [ebp + 0x18]
push eax
mov byte [ebp - 4], 0xb
call sym.MNN.dll_public:_class_std::vector_int__class_std::allocator_int_____thiscall_MNN::Tensor::shape_void_
mov eax, dword [ebp + 0x1c]
mov byte [ebp - 4], 0xc
cmp eax, dword [ebp + 0x20]
je 0x100f0834
mov ecx, dword [ebp + 0x38]
mov dword [eax], ecx
add dword [ebp + 0x1c], 4
jmp 0x100f0841
lea ecx, [ebp - 0x10]
push ecx
push eax
lea ecx, [ebp + 0x18]
call fcn.100056c0
push 0
mov dword [ebp + 0x48], 0x10801
lea eax, [ebp + 0x18]
push dword [ebp + 0x48]
push eax
call sym.MNN.dll_public:_static_class_MNN::Tensor____cdecl_MNN::Tensor::createDevice_class_std::vector_int__class_std::allocator_int___const___struct_halide_type_t__enum_MNN::Tensor::DimensionType_
mov edi, dword [ebx + 0x2c]
lea ecx, [ebp - 0x14]
add esp, 0xc
push eax
call fcn.10015560
mov ecx, dword [edi]
mov esi, eax
mov edx, dword [esi]
mov dword [esi], ecx
mov eax, dword [edi + 4]
mov dword [edi], edx
mov ecx, dword [esi + 4]
mov dword [esi + 4], eax
mov dword [edi + 4], ecx
mov edi, dword [ebp - 0x10]
test edi, edi
je 0x100f08a4
or esi, 0xffffffff
mov eax, esi
lock xadd dword [edi + 4], eax
jne 0x100f08a4
mov eax, dword [edi]
mov ecx, edi
call dword [eax]
mov eax, esi
lock xadd dword [edi + 8], eax
jne 0x100f08a4
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
mov eax, dword [ebx + 0x2c]
mov ecx, dword [ebx + 8]
push 0
push dword [eax]
call sym.MNN.dll_public:_bool___thiscall_MNN::Backend::onAcquireBuffer_class_MNN::Tensor_const___enum_MNN::Backend::StorageType_
mov byte [ebx + 4], al
test al, al
jne 0x100f08c2
mov byte [ebp + 0x57], al
jmp 0x100f0969
push 1
push dword [ebp + 0xc]
lea ecx, [ebp - 0x54]
push dword [ebp + 4]
call sym.MNN.dll_public:_void___thiscall_MNN::Math::WinogradGenerater::transformWeight_class_MNN::Tensor_const___class_MNN::Tensor_const___bool_
cmp dword [ebp + 0x38], 4
mov eax, dword [ebx + 0x2c]
mov ecx, dword [ebp + 4]
mov eax, dword [eax]
mov edi, dword [ecx + 0xc]
je 0x100f090b
movzx esi, byte [ecx + 0x21]
mov ebx, dword [eax + 0xc]
add esi, 7
shr esi, 3
call sym.MNN.dll_public:_int___thiscall_MNN::Tensor::size_void_const
cdq
idiv esi
push eax
mov eax, dword [ebp + 0x34]
push ebx
push edi
mov eax, dword [eax + 0xe0]
call eax
mov ebx, dword [ebp - 0x18]
jmp 0x100f091b
mov esi, dword [eax + 0xc]
call sym.MNN.dll_public:_int___thiscall_MNN::Tensor::size_void_const
push eax
push edi
push esi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
lea eax, [ebp + 0x3c]
mov ecx, ebx
push eax
call fcn.10098b00
mov esi, eax
add ebx, 0x6c
cmp ebx, esi
je 0x100f095d
mov ecx, ebx
call fcn.10002ec0
mov ecx, dword [esi]
mov dword [ebx], ecx
mov eax, dword [esi + 4]
mov dword [ebx + 4], eax
mov eax, dword [esi + 8]
mov dword [ebx + 8], eax
mov dword [esi], 0
mov dword [esi + 4], 0
mov dword [esi + 8], 0
lea ecx, [ebp + 0x3c]
call fcn.10002ec0
mov byte [ebp + 0x57], 1
mov edx, dword [ebp + 0x18]
test edx, edx
je 0x100f09b7
mov ecx, dword [ebp + 0x20]
mov eax, edx
sub ecx, edx
and ecx, 0xfffffffc
cmp ecx, 0x1000
jb 0x100f0998
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x100f0998
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.10196271
add esp, 8
mov dword [ebp + 0x18], 0
mov dword [ebp + 0x1c], 0
mov dword [ebp + 0x20], 0
mov esi, dword [ebp + 8]
or ebx, 0xffffffff
test esi, esi
je 0x100f09e0
mov eax, ebx
lock xadd dword [esi + 4], eax
jne 0x100f09e0
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
mov eax, ebx
lock xadd dword [esi + 8], eax
jne 0x100f09e0
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov esi, dword [ebp + 0x10]
test esi, esi
je 0x100f0a06
mov eax, ebx
lock xadd dword [esi + 4], eax
jne 0x100f0a06
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
mov eax, ebx
lock xadd dword [esi + 8], eax
jne 0x100f0a06
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov esi, dword [ebp + 0x4c]
test esi, esi
je 0x100f0a2b
mov eax, ebx
lock xadd dword [esi + 4], eax
jne 0x100f0a2b
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
lock xadd dword [esi + 8], ebx
dec ebx
jne 0x100f0a2b
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 4]
lea ecx, [ebp - 0x54]
call sym.MNN.dll_public:_void___thiscall_MNN::Math::WinogradGenerater::destructor_void_
mov al, byte [ebp + 0x57]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x6c]
xor ecx, ebp
call fcn.1019627f
lea esp, [ebp + 0x70]
pop ebp
ret 8