Function at 0x10067580
Capabilities:
Access peb ldr_data
Check for peb beingdebugged flag

Disassembly:
push 0xffffffffffffffff
push 0x1019ac4b
mov eax, dword fs:[0]
push eax
sub esp, 0x30
push esi
push edi
mov eax, dword [0x10279264]
xor eax, esp
push eax
lea eax, [esp + 0x3c]
mov dword fs:[0], eax
mov esi, ecx
mov dword [esp + 0xc], 0
movzx eax, byte [esi + 3]
movzx ecx, byte [esi + 2]
push eax
push ecx
push str.m_da_major_ver_V_u___m_da_minor_ver_V_u_.
lea edi, [esp + 0x30]
mov dword [esp + 0x30], str.FlashToolLib_sv5_common_interface_src_da_cmd_base.cpp
mov dword [esp + 0x34], 0x1b6
mov byte [esp + 0x38], 0
mov dword [esp + 0x3c], str._DEBUG:
mov dword [esp + 0x40], str.DACmdBaseFactory::DACmdBaseCreator
call fcn.10017c90
movzx edx, word [esi + 0x2a]
movzx eax, word [esi + 0x2c]
add esp, 0xc
push edx
push eax
push str.m_bbchip_hw_code_0x_x___m_bbchip_sw_ver_0x_x_.
lea edi, [esp + 0x30]
mov dword [esp + 0x30], str.FlashToolLib_sv5_common_interface_src_da_cmd_base.cpp
mov dword [esp + 0x34], 0x1b8
mov byte [esp + 0x38], 0
mov dword [esp + 0x3c], str._DEBUG:
mov dword [esp + 0x40], str.DACmdBaseFactory::DACmdBaseCreator
call fcn.10017c90
movzx eax, word [esi + 0x2c]
add esp, 0xc
cmp eax, 0x6571
jg 0x10067675
je 0x10067849
cmp eax, 0x337
jg 0x10067660
je case.0x10067690.25970
sub eax, 0x321
je case.0x10067690.25970
sub eax, 0x14
jmp 0x10067a85
cmp eax, 0x571
je case.0x10067690.25970
cmp eax, 0x2601
jmp 0x10067a85
cmp eax, 0x6580
jg 0x100676ed
je 0x10067a05
sub eax, 0x6572
cmp eax, 5
ja case.0x10067690.25972
jmp dword [eax*4 + 0x10067b0c]
push 4
call fcn.1016d7a5
add esp, 4
test eax, eax
je 0x100676cb
mov esi, dword [esp + 0x4c]
push esi
mov ecx, eax
mov dword [eax], vtable.DACmdV3.0
call fcn.10069f40
mov eax, esi
mov ecx, dword [esp + 0x3c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
add esp, 0x3c
ret
mov esi, dword [esp + 0x4c]
xor eax, eax
push esi
mov ecx, eax
call fcn.10069f40
mov eax, esi
mov ecx, dword [esp + 0x3c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
add esp, 0x3c
ret
cmp eax, 0x6795
jg 0x10067925
je case.0x10067690.25970
cmp eax, 0x6595
jg 0x10067909
je case.0x10067690.25970
sub eax, 0x6582
je 0x10067849
sub eax, 1
je 0x100677c3
sub eax, 0xf
jne case.0x10067690.25972
push 4
call fcn.1016d7a5
add esp, 4
test eax, eax
je 0x10067742
mov dword [eax], vtable.DACmdV4.0
jmp 0x10067744
xor eax, eax
lea ecx, [esp + 0xc]
push ecx
mov ecx, eax
call fcn.10069fa0
push 0xc
mov dword [esp + 0x48], 2
call fcn.1016d7a5
add esp, 4
test eax, eax
je 0x10067790
mov dword [eax], vtable.GPTDASyncCmdDecorator.0
mov edx, dword [esp + 0xc]
mov dword [eax + 4], edx
mov ecx, dword [esp + 0x10]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x10]
test ecx, ecx
je 0x10067792
add ecx, 4
mov edx, 1
lock xadd dword [ecx], edx
jmp 0x10067792
xor eax, eax
mov esi, dword [esp + 0x4c]
push esi
mov ecx, eax
call fcn.1006a0c0
lea eax, [esp + 0xc]
mov dword [esp + 0x44], 0xffffffff
call fcn.101008e0
mov eax, esi
mov ecx, dword [esp + 0x3c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
add esp, 0x3c
ret
push 4
call fcn.1016d7a5
add esp, 4
test eax, eax
je 0x100677d9
mov dword [eax], vtable.DACmdV4.0
jmp 0x100677db
xor eax, eax
lea ecx, [esp + 0xc]
push ecx
mov ecx, eax
call fcn.10069fa0
push 0xc
mov dword [esp + 0x48], 0
call fcn.1016d7a5
add esp, 4
test eax, eax
je 0x10067836
mov dword [eax], vtable.MT6589DASyncCmdDecorator.0
mov edx, dword [esp + 0xc]
mov dword [eax + 4], edx
mov ecx, dword [esp + 0x10]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x10]
test ecx, ecx
je 0x10067838
add ecx, 4
mov edx, 1
lock xadd dword [ecx], edx
mov esi, dword [esp + 0x4c]
push esi
mov ecx, eax
call fcn.1006a000
jmp 0x1006779e
xor eax, eax
mov esi, dword [esp + 0x4c]
push esi
mov ecx, eax
call fcn.1006a000
jmp 0x1006779e
push 4
call fcn.1016d7a5
add esp, 4
test eax, eax
je 0x10067861
mov dword [eax], vtable.DACmdV4.0
mov ecx, eax
jmp 0x10067863
xor ecx, ecx
lea eax, [esp + 0xc]
push eax
call fcn.10069fa0
push 0xc
mov dword [esp + 0x48], 1
call fcn.1016d7a5
add esp, 4
test eax, eax
je 0x100678ad
mov dword [eax], vtable.NewComboDASyncCmdDecorator.0
mov ecx, dword [esp + 0xc]
mov dword [eax + 4], ecx
mov edx, dword [esp + 0x10]
mov dword [eax + 8], edx
mov ecx, dword [esp + 0x10]
test ecx, ecx
je 0x100678af
add ecx, 4
mov edx, 1
lock xadd dword [ecx], edx
jmp 0x100678af
xor eax, eax
mov edi, dword [esp + 0x4c]
push edi
mov ecx, eax
call fcn.1006a060
mov dword [esp + 0x44], 0xffffffff
mov esi, dword [esp + 0x10]
test esi, esi
je 0x100678f5
lea eax, [esi + 4]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x100678f5
mov edx, dword [esi]
mov eax, dword [edx + 4]
mov ecx, esi
call eax
lea ecx, [esi + 8]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x100678f5
mov eax, dword [esi]
mov edx, dword [eax + 8]
mov ecx, esi
call edx
mov eax, edi
mov ecx, dword [esp + 0x3c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
add esp, 0x3c
ret
sub eax, 0x6735
je case.0x10067690.25970
sub eax, 0x1d
je case.0x10067690.25970
sub eax, 3
jmp 0x10067a85
cmp eax, 0x8163
jg 0x10067a74
je 0x10067a05
sub eax, 0x6797
je case.0x10067690.25970
sub eax, 0x1990
je 0x10067950
sub eax, 0xe
jmp 0x10067a85
push 4
call fcn.1016d7a5
add esp, 4
test eax, eax
je 0x10067966
mov dword [eax], vtable.DACmdV4.0
jmp 0x10067968
xor eax, eax
lea ecx, [esp + 0x14]
push ecx
mov ecx, eax
call fcn.10069fa0
push 0xc
mov dword [esp + 0x48], 3
call fcn.1016d7a5
add esp, 4
test eax, eax
je 0x10067995
lea ecx, [esp + 0x14]
call fcn.10065410
jmp 0x10067997
xor eax, eax
lea edx, [esp + 0xc]
push edx
mov ecx, eax
call fcn.1006a120
push 0xc
mov byte [esp + 0x48], 4
call fcn.1016d7a5
add esp, 4
test eax, eax
je 0x100679e0
mov dword [eax], vtable.SkipDLInfoDASyncCmdDecorator.0
mov ecx, dword [esp + 0xc]
mov dword [eax + 4], ecx
mov edx, dword [esp + 0x10]
mov dword [eax + 8], edx
mov ecx, dword [esp + 0x10]
test ecx, ecx
je 0x100679e2
add ecx, 4
mov edx, 1
lock xadd dword [ecx], edx
jmp 0x100679e2
xor eax, eax
mov esi, dword [esp + 0x4c]
push esi
mov ecx, eax
call fcn.1006a180
lea eax, [esp + 0xc]
mov byte [esp + 0x44], 3
call fcn.101008e0
lea eax, [esp + 0x14]
jmp 0x100677a2
push 4
call fcn.1016d7a5
add esp, 4
test eax, eax
je 0x10067a1b
mov dword [eax], vtable.DACmdV4.0
jmp 0x10067a1d
xor eax, eax
lea ecx, [esp + 0x1c]
push ecx
mov ecx, eax
call fcn.10069fa0
push 0xc
mov dword [esp + 0x48], 5
call fcn.1016d7a5
add esp, 4
test eax, eax
je 0x10067a5d
lea ecx, [esp + 0x1c]
call fcn.10065410
mov esi, dword [esp + 0x4c]
push esi
mov ecx, eax
call fcn.1006a120
lea eax, [esp + 0x1c]
jmp 0x100677a2
mov esi, dword [esp + 0x4c]
xor eax, eax
push esi
mov ecx, eax
call fcn.1006a120
lea eax, [esp + 0x1c]
jmp 0x100677a2
sub eax, 0x8172
je case.0x10067690.25970
sub eax, 4
je case.0x10067690.25970
sub eax, 0x41a
je case.0x10067690.25970
push 4
call fcn.1016d7a5
add esp, 4
mov dword [esp + 0xc], eax
mov dword [esp + 0x44], 6
test eax, eax
je 0x10067aa9
push eax
call fcn.100656f0
jmp 0x10067aab
xor eax, eax
mov esi, dword [esp + 0x4c]
push esi
mov ecx, eax
mov dword [esp + 0x48], 0xffffffff
call fcn.1006a1e0
mov eax, esi
mov ecx, dword [esp + 0x3c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
add esp, 0x3c
ret
push 4
call fcn.1016d7a5
add esp, 4
test eax, eax
je 0x10067ae9
mov dword [eax], vtable.DACmdV4.0
jmp 0x10067aeb
xor eax, eax
mov esi, dword [esp + 0x4c]
push esi
mov ecx, eax
call fcn.10069fa0
mov eax, esi
mov ecx, dword [esp + 0x3c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
add esp, 0x3c
ret