Function at 0x4097d2
Capabilities:
Create directory
Read file on windows

Disassembly:
lea ecx, [esp + 4]
and esp, 0xfffffff0
push dword [ecx - 4]
push ebp
mov ebp, esp
push esi
push ebx
push ecx
sub esp, 0x3bc
mov ebx, ecx
call sym.___main
mov byte [ebp - 0x19], 0
mov byte [ebp - 0x25], 0
mov byte [ebp - 0x26], 0
mov byte [ebp - 0x1a], 0
mov byte [ebp - 0x27], 0
mov dword [esp], str.GETCHARGED_ME7_Flasher_Version_1.1
call sym._puts
mov byte [ebp - 0x1b], 0
movzx edx, byte [ebp - 0x1b]
mov eax, dword [ebx]
movzx eax, al
cmp edx, eax
jge 0x40a18b
mov byte [ebp - 0x1c], 0
movzx esi, byte [ebp - 0x1c]
movzx eax, byte [ebp - 0x1b]
lea edx, [eax*4]
mov eax, dword [ebx + 4]
add eax, edx
mov eax, dword [eax]
mov dword [esp], eax
call sym._strlen
cmp esi, eax
jae 0x409897
movzx eax, byte [ebp - 0x1b]
lea edx, [eax*4]
mov eax, dword [ebx + 4]
add eax, edx
mov edx, dword [eax]
movzx eax, byte [ebp - 0x1c]
lea esi, [edx + eax]
movzx eax, byte [ebp - 0x1b]
lea edx, [eax*4]
mov eax, dword [ebx + 4]
add eax, edx
mov edx, dword [eax]
movzx eax, byte [ebp - 0x1c]
add eax, edx
movzx eax, byte [eax]
movsx eax, al
mov dword [esp], eax
call sym._tolower
mov byte [esi], al
movzx eax, byte [ebp - 0x1c]
add eax, 1
mov byte [ebp - 0x1c], al
jmp 0x409828
movzx eax, byte [ebp - 0x1b]
lea edx, [eax*4]
mov eax, dword [ebx + 4]
add eax, edx
mov eax, dword [eax]
mov dword [esp + 4], str.fullwrite
mov dword [esp], eax
call sym._strstr
test eax, eax
jne 0x4098e3
movzx eax, byte [ebp - 0x1b]
lea edx, [eax*4]
mov eax, dword [ebx + 4]
add eax, edx
mov eax, dword [eax]
mov dword [esp + 4], 0x4124f1
mov dword [esp], eax
call sym._strstr
test eax, eax
je 0x40993d
mov byte [0x416053], 1
mov byte [0x40f0a4], 0
movzx eax, byte [ebp - 0x1b]
add eax, 1
lea edx, [eax*4]
mov eax, dword [ebx + 4]
add eax, edx
mov eax, dword [eax]
mov dword [esp + 4], eax
lea eax, [ebp - 0x15c]
mov dword [esp], eax
call sym._strcpy
lea eax, [ebp - 0x15c]
mov dword [esp + 4], eax
mov dword [esp], str.Parameter__fw_used__writing_FULL__s_to_ECU_n
call sym._printf
movzx eax, byte [ebp - 0x1b]
add eax, 1
mov byte [ebp - 0x1b], al
jmp 0x40a17c
movzx eax, byte [ebp - 0x1b]
lea edx, [eax*4]
mov eax, dword [ebx + 4]
add eax, edx
mov eax, dword [eax]
mov dword [esp + 4], str.write
mov dword [esp], eax
call sym._strstr
test eax, eax
jne 0x409989
movzx eax, byte [ebp - 0x1b]
lea edx, [eax*4]
mov eax, dword [ebx + 4]
add eax, edx
mov eax, dword [eax]
mov dword [esp + 4], 0x41252a
mov dword [esp], eax
call sym._strstr
test eax, eax
je 0x4099dc
mov byte [0x416053], 1
movzx eax, byte [ebp - 0x1b]
add eax, 1
lea edx, [eax*4]
mov eax, dword [ebx + 4]
add eax, edx
mov eax, dword [eax]
mov dword [esp + 4], eax
lea eax, [ebp - 0x15c]
mov dword [esp], eax
call sym._strcpy
lea eax, [ebp - 0x15c]
mov dword [esp + 4], eax
mov dword [esp], str.Parameter__w_used__writing__s_to_ECU_n
call sym._printf
movzx eax, byte [ebp - 0x1b]
add eax, 1
mov byte [ebp - 0x1b], al
jmp 0x40a17c
movzx eax, byte [ebp - 0x1b]
lea edx, [eax*4]
mov eax, dword [ebx + 4]
add eax, edx
mov eax, dword [eax]
mov dword [esp + 4], str._bnum
mov dword [esp], eax
call sym._strstr
test eax, eax
je 0x409a4a
movzx eax, byte [ebp - 0x1b]
add eax, 1
lea edx, [eax*4]
mov eax, dword [ebx + 4]
add eax, edx
mov eax, dword [eax]
mov dword [esp + 4], eax
mov dword [esp], 0x40f0c0
call sym._strcpy
mov dword [esp + 4], 0x40f0c0
mov dword [esp], str.Parameter__bnum_used__using_HW_Number__s_to_ECU_n
call sym._printf
movzx eax, byte [ebp - 0x1b]
add eax, 1
mov byte [ebp - 0x1b], al
jmp 0x40a17c
movzx eax, byte [ebp - 0x1b]
lea edx, [eax*4]
mov eax, dword [ebx + 4]
add eax, edx
mov eax, dword [eax]
mov dword [esp + 4], str.backupsession
mov dword [esp], eax
call sym._strstr
test eax, eax
jne 0x409a96
movzx eax, byte [ebp - 0x1b]
lea edx, [eax*4]
mov eax, dword [ebx + 4]
add eax, edx
mov eax, dword [eax]
mov dword [esp + 4], 0x41259b
mov dword [esp], eax
call sym._strstr
test eax, eax
je 0x409af1
movzx eax, byte [ebp - 0x1b]
add eax, 1
lea edx, [eax*4]
mov eax, dword [ebx + 4]
add eax, edx
mov eax, dword [eax]
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], eax
call sym._strtol
mov byte [0x40f0a1], al
movzx eax, byte [0x40f0a1]
movzx eax, al
mov dword [esp + 4], eax
mov dword [esp], str.Parameter__bs_used__using_Backup_Session_Number_0x_02x_n
call sym._printf
movzx eax, byte [ebp - 0x1b]
add eax, 1
mov byte [ebp - 0x1b], al
jmp 0x40a17c
movzx eax, byte [ebp - 0x1b]
lea edx, [eax*4]
mov eax, dword [ebx + 4]
add eax, edx
mov eax, dword [eax]
mov dword [esp + 4], str.usage
mov dword [esp], eax
call sym._strstr
test eax, eax
jne 0x409b89
movzx eax, byte [ebp - 0x1b]
lea edx, [eax*4]
mov eax, dword [ebx + 4]
add eax, edx
mov eax, dword [eax]
mov dword [esp + 4], str.help
mov dword [esp], eax
call sym._strstr
test eax, eax
jne 0x409b89
movzx eax, byte [ebp - 0x1b]
lea edx, [eax*4]
mov eax, dword [ebx + 4]
add eax, edx
mov eax, dword [eax]
mov dword [esp + 4], 0x4125e3
mov dword [esp], eax
call sym._strstr
test eax, eax
jne 0x409b89
movzx eax, byte [ebp - 0x1b]
lea edx, [eax*4]
mov eax, dword [ebx + 4]
add eax, edx
mov eax, dword [eax]
mov dword [esp + 4], 0x4125e6
mov dword [esp], eax
call sym._strstr
test eax, eax
je 0x409b9a
call sym.usage__
mov dword [esp], 0
call sym._exit
movzx eax, byte [ebp - 0x1b]
lea edx, [eax*4]
mov eax, dword [ebx + 4]
add eax, edx
mov eax, dword [eax]
mov dword [esp + 4], str.immo
mov dword [esp], eax
call sym._strstr
test eax, eax
jne 0x409be6
movzx eax, byte [ebp - 0x1b]
lea edx, [eax*4]
mov eax, dword [ebx + 4]
add eax, edx
mov eax, dword [eax]
mov dword [esp + 4], 0x4125ee
mov dword [esp], eax
call sym._strstr
test eax, eax
je 0x409c05
mov dword [esp], str.Parameter__ti_used__switching_IMMO_State_in_ECU
call sym._puts
mov byte [0x416056], 1
mov byte [0x416055], 1
jmp 0x40a17c
movzx eax, byte [ebp - 0x1b]
lea edx, [eax*4]
mov eax, dword [ebx + 4]
add eax, edx
mov eax, dword [eax]
mov dword [esp + 4], str.checkimmo
mov dword [esp], eax
call sym._strstr
test eax, eax
jne 0x409c51
movzx eax, byte [ebp - 0x1b]
lea edx, [eax*4]
mov eax, dword [ebx + 4]
add eax, edx
mov eax, dword [eax]
mov dword [esp + 4], 0x41262e
mov dword [esp], eax
call sym._strstr
test eax, eax
je 0x409c69
mov dword [esp], str.Parameter__ci_used__checking_IMMO_State_in_ECU
call sym._puts
mov byte [0x416056], 1
jmp 0x40a17c
movzx eax, byte [ebp - 0x1b]
lea edx, [eax*4]
mov eax, dword [ebx + 4]
add eax, edx
mov eax, dword [eax]
mov dword [esp + 4], str.brick
mov dword [esp], eax
call sym._strstr
test eax, eax
jne 0x409cb5
movzx eax, byte [ebp - 0x1b]
lea edx, [eax*4]
mov eax, dword [ebx + 4]
add eax, edx
mov eax, dword [eax]
mov dword [esp + 4], 0x412669
mov dword [esp], eax
call sym._strstr
test eax, eax
je 0x409ccd
mov dword [esp], str.Parameter__br_used__trying_to_brick_ECU
call sym._puts
mov byte [0x416054], 1
jmp 0x40a17c
movzx eax, byte [ebp - 0x1b]
lea edx, [eax*4]
mov eax, dword [ebx + 4]
add eax, edx
mov eax, dword [eax]
mov dword [esp + 4], str.slow
mov dword [esp], eax
call sym._strstr
test eax, eax
jne 0x409d19
movzx eax, byte [ebp - 0x1b]
lea edx, [eax*4]
mov eax, dword [ebx + 4]
add eax, edx
mov eax, dword [eax]
mov dword [esp + 4], 0x41269d
mov dword [esp], eax
call sym._strstr
test eax, eax
je 0x409d31
mov dword [esp], str.Parameter__sl_used__SlowMode_active
call sym._puts
mov byte [0x416059], 1
jmp 0x40a17c
movzx eax, byte [ebp - 0x1b]
lea edx, [eax*4]
mov eax, dword [ebx + 4]
add eax, edx
mov eax, dword [eax]
mov dword [esp + 4], str.debugfiles
mov dword [esp], eax
call sym._strstr
test eax, eax
jne 0x409d7d
movzx eax, byte [ebp - 0x1b]
lea edx, [eax*4]
mov eax, dword [ebx + 4]
add eax, edx
mov eax, dword [eax]
mov dword [esp + 4], 0x4126d3
mov dword [esp], eax
call sym._strstr
test eax, eax
je 0x409d95
mov dword [esp], str.Parameter__df_used__Debug_Files_will_be_written
call sym._puts
mov byte [0x41605a], 1
jmp 0x40a17c
movzx eax, byte [ebp - 0x1b]
lea edx, [eax*4]
mov eax, dword [ebx + 4]
add eax, edx
mov eax, dword [eax]
mov dword [esp + 4], str.test
mov dword [esp], eax
call sym._strstr
test eax, eax
jne 0x409de1
movzx eax, byte [ebp - 0x1b]
lea edx, [eax*4]
mov eax, dword [ebx + 4]
add eax, edx
mov eax, dword [eax]
mov dword [esp + 4], str._test
mov dword [esp], eax
call sym._strstr
test eax, eax
je 0x409df9
mov dword [esp], str.Parameter__test_used__testmode_active_ECU
call sym._puts
mov byte [0x416058], 1
jmp 0x40a17c
movzx eax, byte [ebp - 0x1b]
lea edx, [eax*4]
mov eax, dword [ebx + 4]
add eax, edx
mov eax, dword [eax]
mov dword [esp + 4], str.backup
mov dword [esp], eax
call sym._strstr
test eax, eax
jne 0x409e45
movzx eax, byte [ebp - 0x1b]
lea edx, [eax*4]
mov eax, dword [ebx + 4]
add eax, edx
mov eax, dword [eax]
mov dword [esp + 4], 0x412745
mov dword [esp], eax
call sym._strstr
test eax, eax
je 0x409e5d
mov dword [esp], str.Parameter__ba_used__doing_Backup_of_ECU
call sym._puts
mov byte [0x416057], 1
jmp 0x40a17c
movzx eax, byte [ebp - 0x1b]
lea edx, [eax*4]
mov eax, dword [ebx + 4]
add eax, edx
mov eax, dword [eax]
mov dword [esp + 4], str.debug1
mov dword [esp], eax
call sym._strstr
test eax, eax
jne 0x409ea9
movzx eax, byte [ebp - 0x1b]
lea edx, [eax*4]
mov eax, dword [ebx + 4]
add eax, edx
mov eax, dword [eax]
mov dword [esp + 4], 0x41277b
mov dword [esp], eax
call sym._strstr
test eax, eax
je 0x409ecf
mov dword [esp], str.Parameter__d1_used__debugging_level1_enabled
call sym._puts
mov byte [0x41604f], 1
mov byte [0x41604e], 0
mov byte [0x416050], 1
jmp 0x40a17c
movzx eax, byte [ebp - 0x1b]
lea edx, [eax*4]
mov eax, dword [ebx + 4]
add eax, edx
mov eax, dword [eax]
mov dword [esp + 4], str.debug2
mov dword [esp], eax
call sym._strstr
test eax, eax
jne 0x409f1b
movzx eax, byte [ebp - 0x1b]
lea edx, [eax*4]
mov eax, dword [ebx + 4]
add eax, edx
mov eax, dword [eax]
mov dword [esp + 4], 0x4127b5
mov dword [esp], eax
call sym._strstr
test eax, eax
je 0x409f41
mov dword [esp], str.Parameter__d2_used__debugging_level2_enabled
call sym._puts
mov byte [0x41604f], 1
mov byte [0x41604e], 2
mov byte [0x416050], 1
jmp 0x40a17c
movzx eax, byte [ebp - 0x1b]
lea edx, [eax*4]
mov eax, dword [ebx + 4]
add eax, edx
mov eax, dword [eax]
mov dword [esp + 4], str.debug3
mov dword [esp], eax
call sym._strstr
test eax, eax
jne 0x409f8d
movzx eax, byte [ebp - 0x1b]
lea edx, [eax*4]
mov eax, dword [ebx + 4]
add eax, edx
mov eax, dword [eax]
mov dword [esp + 4], 0x4127f1
mov dword [esp], eax
call sym._strstr
test eax, eax
je 0x409fb3
mov dword [esp], str.Parameter__d3_used__debugging_level3_enabled
call sym._puts
mov byte [0x41604f], 1
mov byte [0x41604e], 3
mov byte [0x416050], 1
jmp 0x40a17c
movzx eax, byte [ebp - 0x1b]
lea edx, [eax*4]
mov eax, dword [ebx + 4]
add eax, edx
mov eax, dword [eax]
mov dword [esp + 4], str.bytewise
mov dword [esp], eax
call sym._strstr
test eax, eax
jne 0x409fff
movzx eax, byte [ebp - 0x1b]
lea edx, [eax*4]
mov eax, dword [ebx + 4]
add eax, edx
mov eax, dword [eax]
mov dword [esp + 4], 0x41282f
mov dword [esp], eax
call sym._strstr
test eax, eax
je 0x40a017
mov dword [esp], str.Parameter__bw_used__sending_byte_per_byte_to_ECU
call sym._puts
mov byte [0x40f09e], 0
jmp 0x40a17c
movzx eax, byte [ebp - 0x1b]
lea edx, [eax*4]
mov eax, dword [ebx + 4]
add eax, edx
mov eax, dword [eax]
mov dword [esp + 4], str.custom
mov dword [esp], eax
call sym._strstr
test eax, eax
jne 0x40a178
movzx eax, byte [ebp - 0x1b]
lea edx, [eax*4]
mov eax, dword [ebx + 4]
add eax, edx
mov eax, dword [eax]
mov dword [esp + 4], 0x41286c
mov dword [esp], eax
call sym._strstr
test eax, eax
jne 0x40a178
movzx eax, byte [ebp - 0x1b]
lea edx, [eax*4]
mov eax, dword [ebx + 4]
add eax, edx
mov eax, dword [eax]
mov dword [esp + 4], str.size
mov dword [esp], eax
call sym._strstr
test eax, eax
jne 0x40a17b
movzx eax, byte [ebp - 0x1b]
lea edx, [eax*4]
mov eax, dword [ebx + 4]
add eax, edx
mov eax, dword [eax]
mov dword [esp + 4], 0x412874
mov dword [esp], eax
call sym._strstr
test eax, eax
jne 0x40a17b
movzx eax, byte [ebp - 0x1b]
lea edx, [eax*4]
mov eax, dword [ebx + 4]
add eax, edx
mov eax, dword [eax]
mov dword [esp + 4], str.target
mov dword [esp], eax
call sym._strstr
test eax, eax
jne 0x40a10b
movzx eax, byte [ebp - 0x1b]
lea edx, [eax*4]
mov eax, dword [ebx + 4]
add eax, edx
mov eax, dword [eax]
mov dword [esp + 4], 0x41287e
mov dword [esp], eax
call sym._strstr
test eax, eax
je 0x40a17c
movzx eax, byte [ebp - 0x1b]
add eax, 1
lea edx, [eax*4]
mov eax, dword [ebx + 4]
add eax, edx
mov eax, dword [eax]
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], eax
call sym._strtol
mov byte [0x40f141], al
movzx eax, byte [0x40f141]
movzx eax, al
test eax, eax
jg 0x40a152
mov byte [0x40f141], 1
movzx eax, byte [0x40f141]
movzx eax, al
mov dword [esp + 4], eax
mov dword [esp], str.Parameter__t_used__target_is_0x_02x_n
call sym._printf
movzx eax, byte [ebp - 0x1b]
add eax, 1
mov byte [ebp - 0x1b], al
jmp 0x40a17c
nop
jmp 0x40a17c
nop
movzx eax, byte [ebp - 0x1b]
add eax, 1
mov byte [ebp - 0x1b], al
jmp 0x409813
cmp dword [ebx], 1
jg 0x40a1a1
call sym.usage__
mov dword [esp], 0
call sym._exit
mov dword [esp + 4], 0x416020
mov dword [esp], 0
mov eax, dword [sym.imp.FTD2XX.dll_Ordinal_1]
call eax
sub esp, 8
mov dword [0x416024], eax
mov eax, dword [0x416024]
test eax, eax
jne 0x40a1f7
mov dword [esp], str.Connection_to_the_chip_opened_successfully
call sym._puts
lea eax, [ebp - 0x37c]
mov dword [esp + 4], eax
lea eax, [ebp - 0x27c]
mov dword [esp], eax
call sym.checkVCDS_unsigned_char__unsigned_char_
mov byte [ebp - 0x19], al
cmp byte [ebp - 0x19], 0
je 0x40a21b
jmp 0x40a20f
mov dword [esp], str.Error_in_opening_connection__Chip_not_connected_or_loose_cable
call sym._puts
mov dword [esp], 0
call sym._exit
mov dword [esp], str.VCDS_Hex_CAN_Cable_detected_
call sym._puts
movzx eax, byte [0x416053]
test al, al
je 0x40a22c
mov byte [ebp - 0x1a], 1
jmp 0x40a241
movzx eax, byte [0x416058]
test al, al
je 0x40a23d
mov byte [ebp - 0x1a], 1
jmp 0x40a241
mov byte [ebp - 0x1a], 1
mov byte [ebp - 0x1d], 0
cmp byte [ebp - 0x1d], 2
ja 0x40a311
movzx eax, byte [ebp - 0x1d]
movzx eax, byte [eax + 0x40f143]
mov byte [0x40f140], al
movzx eax, byte [ebp - 0x1d]
test eax, eax
jle 0x40a28f
movzx eax, byte [0x40f140]
movzx edx, al
movzx eax, word [0x40f074]
movzx eax, ax
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], str._nSleeping_for__d_ms_and_trying_ID_0x_02X_n
call sym._printf
movzx eax, word [0x40f074]
movzx eax, ax
mov dword [esp], eax
call sym._Sleep_4
sub esp, 4
movzx eax, byte [0x40f140]
movzx eax, al
mov dword [esp + 4], eax
mov dword [esp], str.Trying_to_Wake_up_ECU_on_ID:__02X__n
call sym._printf
movzx eax, byte [ebp - 0x1a]
mov dword [esp + 0xc], 0
mov dword [esp + 8], eax
lea eax, [ebp - 0x27c]
mov dword [esp + 4], eax
lea eax, [ebp - 0x37c]
mov dword [esp], eax
call sym.fullInitKWP2000_unsigned_char__unsigned_char__unsigned_char__unsigned_char_
mov byte [ebp - 0x19], al
cmp byte [ebp - 0x19], 1
je 0x40a310
cmp byte [ebp - 0x19], 0x7f
jne 0x40a301
mov dword [esp], str._n_nCannot_WakeUP_ECU__please_try_another_Target.
call sym._puts
movzx eax, byte [ebp - 0x1d]
add eax, 1
mov byte [ebp - 0x1d], al
jmp 0x40a245
nop
cmp byte [ebp - 0x19], 1
je 0x40a40b
mov dword [esp], 0x4111bf
call sym._puts
mov dword [esp], str.SlowInit_Failed__trying_FastInit...
call sym._puts
mov byte [ebp - 0x1e], 0
cmp byte [ebp - 0x1e], 2
ja 0x40a40b
movzx eax, byte [ebp - 0x1e]
movzx eax, byte [eax + 0x40f143]
mov byte [0x40f140], al
movzx eax, byte [ebp - 0x1e]
test eax, eax
jle 0x40a381
movzx eax, byte [0x40f140]
movzx edx, al
movzx eax, word [0x40f074]
movzx eax, ax
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], str._nSleeping_for__d_ms_and_trying_ID_0x_02X_n
call sym._printf
movzx eax, word [0x40f074]
movzx eax, ax
mov dword [esp], eax
call sym._Sleep_4
sub esp, 4
movzx eax, byte [0x40f140]
movzx eax, al
mov dword [esp + 4], eax
mov dword [esp], str.Trying_to_Wake_up_ECU_on_ID:__02X__n
call sym._printf
movzx eax, byte [ebp - 0x1a]
mov dword [esp + 0xc], 1
mov dword [esp + 8], eax
lea eax, [ebp - 0x27c]
mov dword [esp + 4], eax
lea eax, [ebp - 0x37c]
mov dword [esp], eax
call sym.fullInitKWP2000_unsigned_char__unsigned_char__unsigned_char__unsigned_char_
mov byte [ebp - 0x19], al
cmp byte [ebp - 0x19], 1
jne 0x40a3ea
mov byte [0x416046], 1
jmp 0x40a40b
cmp byte [ebp - 0x19], 0x7f
jne 0x40a3fc
mov dword [esp], str._n_nCannot_WakeUP_ECU__please_try_another_Target.
call sym._puts
movzx eax, byte [ebp - 0x1e]
add eax, 1
mov byte [ebp - 0x1e], al
jmp 0x40a337
cmp byte [ebp - 0x19], 1
je 0x40a429
mov dword [esp], str.Error_in_init_Connection__please_Turn_ECU_OFF_and_wait_10_Seconds__Turn_ON_and_try_again...
call sym._puts
mov dword [esp], 0
call sym._exit
mov byte [ebp - 0x1a], 0
mov dword [esp], str.Testing_DDLI_is_enabled_for_us
call sym._puts
mov dword [esp + 0xc], 0x10
mov dword [esp + 8], 0x387a00
mov dword [esp + 4], 0xf0
lea eax, [ebp - 0x27c]
mov dword [esp], eax
call sym.fastReadMemoryByDDLI_unsigned_char__unsigned_char__unsigned_int__unsigned_char_
mov byte [ebp - 0x19], al
cmp byte [ebp - 0x19], 0x7f
jne 0x40a47d
mov dword [esp], str.DDLI_Disabled_
call sym._puts
mov byte [0x40f09d], 0
jmp 0x40a489
mov dword [esp], str.DDLI_Enabled
call sym._puts
movzx eax, byte [0x416053]
test al, al
je 0x40a784
mov dword [esp], str.Requesting_Flash_Status_Information...
call sym._puts
movzx eax, byte [ebp - 0x1a]
cmp eax, 5
jle 0x40a4bb
mov dword [esp], str.Cannot_request_Flash_Status_Information
call sym._puts
jmp 0x40a52d
mov byte [ebp - 0x37c], 0x1a
mov byte [ebp - 0x37b], 0x9c
mov dword [esp + 8], 2
lea eax, [ebp - 0x27c]
mov dword [esp + 4], eax
lea eax, [ebp - 0x37c]
mov dword [esp], eax
call sym.sendAndReceiveKWP2000Block_unsigned_char__unsigned_char__unsigned_char_
mov byte [ebp - 0x19], al
movzx eax, byte [ebp - 0x279]
cmp al, 0x7f
jne 0x40a52c
movzx eax, byte [ebp - 0x277]
cmp al, 0x78
jne 0x40a52c
movzx eax, byte [0x41604e]
movzx eax, al
test eax, eax
jle 0x40a51c
mov dword [esp], str.Waiting__ECU_respond_BUSY__RequestFlashStatus_
call sym._puts
movzx eax, byte [ebp - 0x1a]
add eax, 1
mov byte [ebp - 0x1a], al
nop
jmp 0x40a4a4
nop
mov byte [ebp - 0x1a], 0
lea eax, [ebp - 0x27c]
mov dword [esp], eax
call sym.readDTC_unsigned_char_
mov byte [ebp - 0x19], al
call sym.deleteDTC__
mov byte [ebp - 0x19], al
movzx eax, byte [0x41604d]
test al, al
jne 0x40a56e
mov dword [esp + 4], 1
lea eax, [ebp - 0x27c]
mov dword [esp], eax
call sym.securityAccessKWP2000_unsigned_char__unsigned_char_
mov byte [ebp - 0x19], al
movzx eax, byte [0x416059]
test al, al
je 0x40a59c
mov dword [esp + 8], 0x14
mov dword [esp + 4], 0x85
lea eax, [ebp - 0x27c]
mov dword [esp], eax
call sym.switchSession_unsigned_char__unsigned_char__unsigned_char_
mov byte [ebp - 0x19], al
jmp 0x40a5bd
mov dword [esp + 8], 0x63
mov dword [esp + 4], 0x85
lea eax, [ebp - 0x27c]
mov dword [esp], eax
call sym.switchSession_unsigned_char__unsigned_char__unsigned_char_
mov byte [ebp - 0x19], al
cmp byte [ebp - 0x19], 0
jne 0x40a624
movzx eax, byte [ebp - 0x279]
cmp al, 0x7f
jne 0x40a606
movzx eax, byte [ebp - 0x277]
cmp al, 0x90
jne 0x40a606
mov dword [esp], str.High_Speed_Session_not_supported__trying_Slow_Speed_Session..
call sym._puts
mov dword [esp + 8], 0x14
mov dword [esp + 4], 0x85
lea eax, [ebp - 0x27c]
mov dword [esp], eax
call sym.switchSession_unsigned_char__unsigned_char__unsigned_char_
mov byte [ebp - 0x19], al
cmp byte [ebp - 0x19], 0
jne 0x40a624
mov dword [esp], str.Cannot_enter_Programming_Session...
call sym._puts
mov dword [esp], 0
call sym._exit
movzx eax, byte [0x41604d]
test al, al
jne 0x40a648
mov dword [esp + 4], 1
lea eax, [ebp - 0x27c]
mov dword [esp], eax
call sym.securityAccessKWP2000_unsigned_char__unsigned_char_
mov byte [ebp - 0x19], al
mov dword [esp], str.Request_Timing_Parameters
call sym._puts
mov byte [ebp - 0x37c], 0x83
mov byte [ebp - 0x37b], 0
mov dword [esp + 8], 2
lea eax, [ebp - 0x27c]
mov dword [esp + 4], eax
lea eax, [ebp - 0x37c]
mov dword [esp], eax
call sym.sendAndReceiveKWP2000Block_unsigned_char__unsigned_char__unsigned_char_
mov byte [ebp - 0x19], al
mov dword [esp + 4], 0x412b6e
lea eax, [ebp - 0x15c]
mov dword [esp], eax
call sym._fopen
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], 0
jne 0x40a6c4
lea eax, [ebp - 0x15c]
mov dword [esp + 4], eax
mov dword [esp], str.unable_to_open_file__s_for_reading.._n
call sym._printf
mov eax, 0
jmp 0x40bcaa
mov dword [esp + 8], 2
mov dword [esp + 4], 0
mov eax, dword [ebp - 0x2c]
mov dword [esp], eax
call sym._fseek
mov eax, dword [ebp - 0x2c]
mov dword [esp], eax
call sym._ftell
mov dword [0x41602c], eax
mov eax, dword [ebp - 0x2c]
mov dword [esp], eax
call sym._rewind
mov eax, dword [0x41602c]
add eax, eax
mov dword [esp], eax
call sym._malloc
mov dword [0x416048], eax
mov edx, dword [0x41602c]
mov eax, dword [0x416048]
mov ecx, dword [ebp - 0x2c]
mov dword [esp + 0xc], ecx
mov dword [esp + 8], edx
mov dword [esp + 4], 1
mov dword [esp], eax
call sym._fread
mov eax, dword [ebp - 0x2c]
mov dword [esp], eax
call sym._fclose
mov edx, dword [0x41602c]
mov eax, dword [0x416048]
mov dword [esp + 8], 0x800000
mov dword [esp + 4], edx
mov dword [esp], eax
call sym.flashECU_unsigned_char__unsigned_int__unsigned_int_
mov byte [ebp - 0x19], al
cmp byte [ebp - 0x19], 0
je 0x40a778
mov dword [esp], str.Flashing_done__nPlease_turn_ECU_off_for_at_least_10_Seconds.
call sym._puts
call sym.ecuReset__
mov dword [esp], 0
call sym._exit
movzx eax, byte [0x416058]
test al, al
je 0x40a7e2
mov byte [ebp - 0x37c], 0x1a
mov byte [ebp - 0x37b], 0x92
mov dword [esp + 8], 2
lea eax, [ebp - 0x27c]
mov dword [esp + 4], eax
lea eax, [ebp - 0x37c]
mov dword [esp], eax
call sym.sendAndReceiveKWP2000Block_unsigned_char__unsigned_char__unsigned_char_
mov byte [ebp - 0x19], al
mov dword [esp + 4], 0x10
lea eax, [ebp - 0x27c]
mov dword [esp], eax
call sym.printBuffer_unsigned_char__unsigned_short_
mov dword [esp], 0
call sym._exit
movzx eax, byte [0x416056]
test al, al
je 0x40ac38
movzx eax, byte [0x416059]
test al, al
je 0x40a81f
mov dword [esp + 8], 0x14
mov dword [esp + 4], 0x86
lea eax, [ebp - 0x27c]
mov dword [esp], eax
call sym.switchSession_unsigned_char__unsigned_char__unsigned_char_
mov byte [ebp - 0x19], al
jmp 0x40a840
mov dword [esp + 8], 0x63
mov dword [esp + 4], 0x86
lea eax, [ebp - 0x27c]
mov dword [esp], eax
call sym.switchSession_unsigned_char__unsigned_char__unsigned_char_
mov byte [ebp - 0x19], al
cmp byte [ebp - 0x19], 0
jne 0x40a885
mov dword [esp], str.Development_Session_not_Supported..
call sym._puts
mov dword [esp + 8], 0x63
mov dword [esp + 4], 0x81
lea eax, [ebp - 0x27c]
mov dword [esp], eax
call sym.switchSession_unsigned_char__unsigned_char__unsigned_char_
mov byte [ebp - 0x19], al
cmp byte [ebp - 0x19], 0
jne 0x40a885
mov dword [esp], str.Even_Diagnostic_Session_not_Supported.._Ok_lets_go_on_slow.._:_
call sym._puts
movzx eax, byte [0x41604d]
test al, al
jne 0x40a8a9
mov dword [esp + 4], 3
lea eax, [ebp - 0x27c]
mov dword [esp], eax
call sym.securityAccessKWP2000_unsigned_char__unsigned_char_
mov byte [ebp - 0x19], al
mov dword [esp + 4], 0x382000
lea eax, [ebp - 0x27c]
mov dword [esp], eax
call sym.findEEPROM_unsigned_char__unsigned_int_
mov byte [ebp - 0x19], al
cmp byte [ebp - 0x19], 0
jne 0x40a8ec
mov dword [esp], 0xa
call sym._putchar
mov dword [esp], str.Cannot_find_EEPROM_Mirror__aborting_
call sym._puts
mov dword [esp], 0
call sym._exit
mov dword [esp], 0xa
call sym._putchar
mov dword [esp], str.Reading_current_PIN..
call sym._printf
mov eax, dword [0x416034]
add eax, 0x20
mov dword [esp + 8], 0x20
mov dword [esp + 4], eax
lea eax, [ebp - 0x27c]
mov dword [esp], eax
call sym.readMemoryByAdress_unsigned_char__unsigned_int__unsigned_char_
mov byte [ebp - 0x19], al
movzx eax, byte [ebp - 0x276]
movzx eax, al
mov word [0x416044], ax
movzx eax, byte [ebp - 0x275]
movzx eax, al
shl eax, 8
mov edx, eax
movzx eax, word [0x416044]
add eax, edx
mov word [0x416044], ax
movzx eax, word [0x416044]
movzx eax, ax
mov dword [esp + 4], eax
mov dword [esp], str._05u_OK_n
call sym._printf
mov word [0x416044], 0
mov dword [esp], str.Reading_current_CODING..
call sym._printf
mov eax, dword [0x416034]
add eax, 0x60
mov dword [esp + 8], 0x20
mov dword [esp + 4], eax
lea eax, [ebp - 0x27c]
mov dword [esp], eax
call sym.readMemoryByAdress_unsigned_char__unsigned_int__unsigned_char_
mov byte [ebp - 0x19], al
movzx eax, byte [ebp - 0x26e]
movzx eax, al
mov word [0x416044], ax
movzx eax, byte [ebp - 0x26d]
movzx eax, al
shl eax, 8
mov edx, eax
movzx eax, word [0x416044]
add eax, edx
mov word [0x416044], ax
movzx eax, word [0x416044]
movzx eax, ax
mov dword [esp + 4], eax
mov dword [esp], str._05u_OK_n
call sym._printf
mov word [0x416044], 0
mov dword [esp], str.Reading_current_IMMO_State..
call sym._printf
mov eax, dword [0x416034]
mov dword [esp + 8], 0x20
mov dword [esp + 4], eax
lea eax, [ebp - 0x27c]
mov dword [esp], eax
call sym.readMemoryByAdress_unsigned_char__unsigned_int__unsigned_char_
mov byte [ebp - 0x19], al
movzx eax, byte [ebp - 0x276]
cmp al, 1
jne 0x40aa5c
mov dword [esp], str.Enabled_
call sym._puts
movzx eax, byte [0x416055]
test al, al
je 0x40aa81
mov byte [ebp - 0x276], 2
mov byte [ebp - 0x266], 2
jmp 0x40aa81
mov dword [esp], str.Disabled
call sym._puts
movzx eax, byte [0x416055]
test al, al
je 0x40aa81
mov byte [ebp - 0x276], 1
mov byte [ebp - 0x266], 1
mov word [0x416044], 0
mov byte [ebp - 0x1f], 0
movzx eax, byte [ebp - 0x1f]
cmp eax, 0xd
jg 0x40aac4
movzx eax, byte [ebp - 0x1f]
add eax, 4
movzx eax, byte [ebp + eax - 0x27c]
movzx edx, al
movzx eax, word [0x416044]
add eax, edx
mov word [0x416044], ax
movzx eax, byte [ebp - 0x1f]
add eax, 1
mov byte [ebp - 0x1f], al
jmp 0x40aa8e
movzx eax, word [0x416044]
not eax
mov word [0x416044], ax
movzx eax, word [0x416044]
mov byte [ebp - 0x26a], al
movzx eax, word [0x416044]
shr ax, 8
mov byte [ebp - 0x269], al
movzx eax, word [0x416044]
sub eax, 1
mov word [0x416044], ax
movzx eax, word [0x416044]
mov byte [ebp - 0x25a], al
movzx eax, word [0x416044]
shr ax, 8
mov byte [ebp - 0x259], al
mov byte [ebp - 0x20], 0
movzx eax, byte [ebp - 0x20]
cmp eax, 0x1f
jg 0x40ab52
movzx eax, byte [ebp - 0x20]
movzx edx, byte [ebp - 0x20]
add edx, 4
movzx edx, byte [ebp + edx - 0x27c]
mov byte [ebp + eax - 0x37c], dl
movzx eax, byte [ebp - 0x20]
add eax, 1
mov byte [ebp - 0x20], al
jmp 0x40ab23
movzx eax, byte [0x416055]
test al, al
je 0x40ac14
mov dword [esp], str.Writing_back_into_Memory....
call sym._puts
mov eax, dword [0x416034]
mov dword [esp + 0xc], 0x20
mov dword [esp + 8], eax
lea eax, [ebp - 0x37c]
mov dword [esp + 4], eax
lea eax, [ebp - 0x27c]
mov dword [esp], eax
call sym.writeMemoryByAdress_unsigned_char__unsigned_char__int__unsigned_char_
mov dword [esp], str.Readback_the_Memory...
call sym._puts
mov eax, dword [0x416034]
mov dword [esp + 8], 0x20
mov dword [esp + 4], eax
lea eax, [ebp - 0x27c]
mov dword [esp], eax
call sym.readMemoryByAdress_unsigned_char__unsigned_int__unsigned_char_
mov byte [ebp - 0x19], al
mov dword [esp], 0xa
call sym._putchar
movzx eax, byte [ebp - 0x276]
cmp al, 1
jne 0x40abe9
mov dword [esp], str.IMMO_State_is_now_Enabled_
call sym._puts
jmp 0x40abf5
mov dword [esp], str.IMMO_State_is_now_Disabled_
call sym._puts
mov dword [esp], 0xa
call sym._putchar
mov dword [esp], str.Please_turn_off___IGNITION___for_30_Seconds_
call sym._puts
call sym.ecuReset__
jmp 0x40ac2c
mov dword [esp], 0xa
call sym._putchar
mov dword [esp], str.Finished_
call sym._puts
mov dword [esp], 0
call sym._exit
movzx eax, byte [0x416054]
test al, al
je 0x40ad7f
call sym.readBootRomVersion__
mov byte [ebp - 0x19], al
cmp byte [ebp - 0x19], 0
jne 0x40ac61
mov dword [esp], 0
call sym._exit
movzx eax, byte [0x416059]
test al, al
je 0x40ac8f
mov dword [esp + 8], 0x14
mov dword [esp + 4], 0x86
lea eax, [ebp - 0x27c]
mov dword [esp], eax
call sym.switchSession_unsigned_char__unsigned_char__unsigned_char_
mov byte [ebp - 0x19], al
jmp 0x40acb0
mov dword [esp + 8], 0x63
mov dword [esp + 4], 0x86
lea eax, [ebp - 0x27c]
mov dword [esp], eax
call sym.switchSession_unsigned_char__unsigned_char__unsigned_char_
mov byte [ebp - 0x19], al
cmp byte [ebp - 0x19], 0
jne 0x40acf5
mov dword [esp], str.Development_Session_not_Supported..
call sym._puts
mov dword [esp + 8], 0x63
mov dword [esp + 4], 0x81
lea eax, [ebp - 0x27c]
mov dword [esp], eax
call sym.switchSession_unsigned_char__unsigned_char__unsigned_char_
mov byte [ebp - 0x19], al
cmp byte [ebp - 0x19], 0
jne 0x40acf5
mov dword [esp], str.Even_Diagnostic_Session_not_Supported.._Ok_lets_go_on_slow.._:_
call sym._puts
movzx eax, byte [0x41604d]
test al, al
jne 0x40ad19
mov dword [esp + 4], 1
lea eax, [ebp - 0x27c]
mov dword [esp], eax
call sym.securityAccessKWP2000_unsigned_char__unsigned_char_
mov byte [ebp - 0x19], al
mov byte [ebp - 0x1a], 0
movzx eax, byte [ebp - 0x1a]
cmp eax, 4
jg 0x40ad41
call sym.uploadActiveFlasher__
mov byte [ebp - 0x19], al
cmp byte [ebp - 0x19], 0
jne 0x40ad40
movzx eax, byte [ebp - 0x1a]
add eax, 1
mov byte [ebp - 0x1a], al
jmp 0x40ad1d
nop
mov dword [esp], str.Bricking_ECU_.....__If_Connection_die__we_had_success_:___
call sym._puts
mov dword [esp], 0x87e000
call sym.brickECU_unsigned_int_
mov byte [ebp - 0x19], al
cmp byte [ebp - 0x19], 0
je 0x40ad73
mov dword [esp], str.Success...._Please_remove_Power_from_ECU_for_about_60_Seconds___ndo_Ignition_on__and_then_Connect_Power_Back_to_ECU_
call sym._puts
call sym.ecuReset__
mov dword [esp], 0
call sym._exit
movzx eax, byte [0x416057]
test al, al
je 0x40bc92
call sym.readBootRomVersion__
mov byte [ebp - 0x19], al
cmp byte [ebp - 0x19], 0
jne 0x40ada8
mov dword [esp], 0
call sym._exit
mov dword [esp], 0
call sym._time
mov dword [esp + 8], eax
mov dword [esp + 4], 0x412e20
mov dword [esp], 0x41605c
call sym._sprintf
lea eax, [ebp - 0x5c]
mov dword [esp + 4], eax
mov dword [esp], 0x41605c
call sym._stat
test eax, eax
jne 0x40adfd
movzx eax, word [ebp - 0x56]
movzx eax, ax
and eax, 0xf000
cmp eax, 0x4000
jne 0x40adfd
mov eax, 1
jmp 0x40ae02
mov eax, 0
test al, al
jne 0x40ae34
mov dword [esp], 0x41605c
call sym._mkdir
cmp eax, 0xffffffff
sete al
test al, al
je 0x40ae34
mov dword [esp], str.Cannot_create_directory__check_rights.
call sym._puts
mov dword [esp], 0
call sym._exit
mov dword [esp + 8], 0x41605c
mov dword [esp + 4], str._sCONNECTION_INFO.bin
lea eax, [ebp - 0xdc]
mov dword [esp], eax
call sym._sprintf
mov dword [esp + 4], 0x410f2e
lea eax, [ebp - 0xdc]
mov dword [esp], eax
call sym._fopen
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 0
jne 0x40ae9f
movzx eax, byte [0x41604f]
movzx eax, al
test eax, eax
jle 0x40ae95
lea eax, [ebp - 0xdc]
mov dword [esp + 4], eax
mov dword [esp], str.unable_to_open_file__s_for_writing.._n
call sym._printf
mov eax, 0
jmp 0x40bcaa
mov dword [esp], str.Requesting_ECU_Informations...
call sym._puts
mov byte [ebp - 0x21], 0
movzx eax, byte [ebp - 0x21]
cmp eax, 0x1e
jg 0x40b05b
movzx eax, byte [0x41604e]
movzx eax, al
test eax, eax
jle 0x40aee1
movzx eax, byte [ebp - 0x21]
sub eax, 0xffffff80
mov dword [esp + 4], eax
mov dword [esp], str.Requesting_ECU_Information__02X..._n
call sym._printf
mov byte [ebp - 0x37c], 0x1a
movzx eax, byte [ebp - 0x21]
add eax, 0xffffff80
mov byte [ebp - 0x37b], al
mov dword [esp + 8], 2
lea eax, [ebp - 0x27c]
mov dword [esp + 4], eax
lea eax, [ebp - 0x37c]
mov dword [esp], eax
call sym.sendAndReceiveKWP2000Block_unsigned_char__unsigned_char__unsigned_char_
mov byte [ebp - 0x19], al
movzx eax, byte [ebp - 0x279]
cmp al, 0x7f
jne 0x40af7d
mov byte [ebp - 0x22], 0
movzx eax, byte [ebp - 0x22]
cmp eax, 0xf
jg 0x40af4f
mov eax, dword [ebp - 0x30]
mov dword [esp + 4], eax
mov dword [esp], 0
call sym._fputc
movzx eax, byte [ebp - 0x22]
add eax, 1
mov byte [ebp - 0x22], al
jmp 0x40af27
movzx eax, byte [0x41604e]
movzx eax, al
test eax, eax
jle 0x40b04c
movzx eax, byte [ebp - 0x21]
sub eax, 0xffffff80
mov dword [esp + 4], eax
mov dword [esp], str.ECU_Info__02X_not_supported_n
call sym._printf
jmp 0x40b04c
movzx eax, byte [ebp - 0x27c]
add eax, 0xffffff80
mov byte [ebp - 0x19], al
movzx eax, byte [ebp - 0x19]
add eax, 3
mov byte [ebp + eax - 0x27c], 0
mov dword [esp + 8], 4
mov dword [esp + 4], 0x20
lea eax, [ebp - 0x27c]
mov dword [esp], eax
call sym._memset
mov byte [ebp - 0x23], 0
movzx eax, byte [ebp - 0x23]
movzx edx, byte [ebp - 0x19]
add edx, 3
cmp eax, edx
jge 0x40aff4
movzx eax, byte [ebp - 0x23]
movzx eax, byte [ebp + eax - 0x27c]
movzx eax, al
mov edx, dword [ebp - 0x30]
mov dword [esp + 4], edx
mov dword [esp], eax
call sym._fputc
movzx eax, byte [ebp - 0x23]
add eax, 1
mov byte [ebp - 0x23], al
jmp 0x40afbb
movzx eax, byte [ebp - 0x19]
add eax, 3
mov byte [ebp - 0x24], al
movzx eax, byte [ebp - 0x24]
and eax, 0xf
test eax, eax
je 0x40b028
mov eax, dword [ebp - 0x30]
mov dword [esp + 4], eax
mov dword [esp], 0
call sym._fputc
movzx eax, byte [ebp - 0x24]
add eax, 1
mov byte [ebp - 0x24], al
jmp 0x40affe
movzx eax, byte [0x41604e]
movzx eax, al
test eax, eax
jle 0x40b04c
lea eax, [ebp - 0x27c]
mov dword [esp + 4], eax
mov dword [esp], str.Message:___s__n
call sym._printf
movzx eax, byte [ebp - 0x21]
add eax, 1
mov byte [ebp - 0x21], al
jmp 0x40aeaf
mov eax, dword [ebp - 0x30]
mov dword [esp], eax
call sym._fclose
movzx eax, byte [0x416059]
test al, al
je 0x40b09a
movzx eax, byte [0x40f0a1]
movzx eax, al
mov dword [esp + 8], 0x14
mov dword [esp + 4], eax
lea eax, [ebp - 0x27c]
mov dword [esp], eax
call sym.switchSession_unsigned_char__unsigned_char__unsigned_char_
mov byte [ebp - 0x19], al
jmp 0x40b0c1
movzx eax, byte [0x40f0a1]
movzx eax, al
mov dword [esp + 8], 0x63
mov dword [esp + 4], eax
lea eax, [ebp - 0x27c]
mov dword [esp], eax
call sym.switchSession_unsigned_char__unsigned_char__unsigned_char_
mov byte [ebp - 0x19], al
cmp byte [ebp - 0x19], 0
jne 0x40b155
movzx eax, byte [ebp - 0x279]
cmp al, 0x7f
jne 0x40b116
movzx eax, byte [ebp - 0x277]
cmp al, 0x90
jne 0x40b116
mov dword [esp], str.High_Speed_Session_not_supported__trying_Slow_Speed_Session..
call sym._puts
movzx eax, byte [0x40f0a1]
movzx eax, al
mov dword [esp + 8], 0x14
mov dword [esp + 4], eax
lea eax, [ebp - 0x27c]
mov dword [esp], eax
call sym.switchSession_unsigned_char__unsigned_char__unsigned_char_
mov byte [ebp - 0x19], al
jmp 0x40b155
mov dword [esp], str.Development_Session_not_Supported..
call sym._puts
mov dword [esp + 8], 0x63
mov dword [esp + 4], 0x81
lea eax, [ebp - 0x27c]
mov dword [esp], eax
call sym.switchSession_unsigned_char__unsigned_char__unsigned_char_
mov byte [ebp - 0x19], al
cmp byte [ebp - 0x19], 0
jne 0x40b155
mov dword [esp], str.Even_Diagnostic_Session_not_Supported.._Ok_lets_go_on_slow.._:_
call sym._puts
movzx eax, byte [0x41604d]
test al, al
jne 0x40b179
mov dword [esp + 4], 1
lea eax, [ebp - 0x27c]
mov dword [esp], eax
call sym.securityAccessKWP2000_unsigned_char__unsigned_char_
mov byte [ebp - 0x19], al
movzx eax, byte [0x40f09d]
movzx eax, al
test eax, eax
jg 0x40b1c9
mov dword [esp], str.Testing_DDLI_again_...
call sym._puts
mov dword [esp], 0x387a00
call sym.testDDLI_unsigned_int_
mov byte [ebp - 0x19], al
cmp byte [ebp - 0x19], 0
je 0x40b1bd
mov dword [esp], str.DDLI_Enabled_now
call sym._puts
mov byte [0x40f09d], 1
jmp 0x40b1c9
mov dword [esp], str.DDLI_still_disabled_:_
call sym._puts
movzx eax, byte [0x40f09d]
test al, al
je 0x40b724
mov dword [esp], str.Testing_FAST_read_Method_on_this_ECU
call sym._puts
lea eax, [ebp - 0x37c]
mov dword [esp + 4], eax
lea eax, [ebp - 0x27c]
mov dword [esp], eax
call sym.HookDDLI_unsigned_char__unsigned_char_
mov byte [ebp - 0x19], al
cmp byte [ebp - 0x19], 0
jne 0x40b222
mov dword [esp], str.FAST_read_Method_on_this_ECU_not_supported.
call sym._puts
mov dword [esp], str.Using_slow_Read_Method.
call sym._puts
jmp 0x40b725
mov dword [esp], str.FAST_read_enabled
call sym._puts
mov dword [esp], 0xa
call sym._putchar
mov dword [esp], str._nReading_Internal_Mikro_Flash...
call sym._puts
mov dword [esp + 8], 0x41605c
mov dword [esp + 4], str._sMIKRO_0x000000.bin
lea eax, [ebp - 0xdc]
mov dword [esp], eax
call sym._sprintf
mov dword [esp], 0
call sym._time
mov dword [ebp - 0x34], eax
mov eax, dword [0x416030]
mov dword [esp + 8], eax
mov dword [esp + 4], 0
lea eax, [ebp - 0xdc]
mov dword [esp], eax
call sym.DumpByDDLIHook_char_const__unsigned_int__unsigned_int_
mov byte [ebp - 0x27], al
mov dword [esp], 0
call sym._time
sub eax, dword [ebp - 0x34]
mov ecx, eax
mov edx, 0x88888889
mov eax, ecx
imul edx
lea eax, [edx + ecx]
sar eax, 5
mov edx, eax
mov eax, ecx
sar eax, 0x1f
sub edx, eax
mov eax, edx
mov byte [ebp - 0x35], al
mov dword [esp], 0
call sym._time
mov edx, eax
mov eax, dword [ebp - 0x34]
mov ecx, edx
sub ecx, eax
movzx edx, byte [ebp - 0x35]
mov eax, edx
shl edx, 4
sub eax, edx
shl eax, 2
add eax, ecx
mov byte [ebp - 0x36], al
movzx edx, byte [ebp - 0x36]
movzx eax, byte [ebp - 0x35]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], str.Duration__d_Minutes_and__d_Seconds_n
call sym._printf
mov dword [esp], str._nReading_Mikro_Registers...
call sym._puts
mov dword [esp + 8], 0x41605c
mov dword [esp + 4], str._sREG_0xF000.bin
lea eax, [ebp - 0xdc]
mov dword [esp], eax
call sym._sprintf
mov dword [esp], 0
call sym._time
mov dword [ebp - 0x34], eax
mov dword [esp + 8], 0x1000
mov dword [esp + 4], 0xf000
lea eax, [ebp - 0xdc]
mov dword [esp], eax
call sym.DumpByDDLIHook_char_const__unsigned_int__unsigned_int_
mov byte [ebp - 0x27], al
mov dword [esp], 0
call sym._time
sub eax, dword [ebp - 0x34]
mov ecx, eax
mov edx, 0x88888889
mov eax, ecx
imul edx
lea eax, [edx + ecx]
sar eax, 5
mov edx, eax
mov eax, ecx
sar eax, 0x1f
sub edx, eax
mov eax, edx
mov byte [ebp - 0x35], al
mov dword [esp], 0
call sym._time
mov edx, eax
mov eax, dword [ebp - 0x34]
mov ecx, edx
sub ecx, eax
movzx edx, byte [ebp - 0x35]
mov eax, edx
shl edx, 4
sub eax, edx
shl eax, 2
add eax, ecx
mov byte [ebp - 0x36], al
movzx edx, byte [ebp - 0x36]
movzx eax, byte [ebp - 0x35]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], str.Duration__d_Minutes_and__d_Seconds_n
call sym._printf
mov dword [esp], str._nReading_External_RAM...
call sym._puts
mov dword [esp + 8], 0x41605c
mov dword [esp + 4], str._sEXTMEM_0x380000.bin
lea eax, [ebp - 0xdc]
mov dword [esp], eax
call sym._sprintf
mov dword [esp], 0
call sym._time
mov dword [ebp - 0x34], eax
mov dword [esp + 8], 0x8000
mov dword [esp + 4], 0x380000
lea eax, [ebp - 0xdc]
mov dword [esp], eax
call sym.DumpByDDLIHook_char_const__unsigned_int__unsigned_int_
mov byte [ebp - 0x27], al
mov dword [esp], 0
call sym._time
sub eax, dword [ebp - 0x34]
mov ecx, eax
mov edx, 0x88888889
mov eax, ecx
imul edx
lea eax, [edx + ecx]
sar eax, 5
mov edx, eax
mov eax, ecx
sar eax, 0x1f
sub edx, eax
mov eax, edx
mov byte [ebp - 0x35], al
mov dword [esp], 0
call sym._time
mov edx, eax
mov eax, dword [ebp - 0x34]
mov ecx, edx
sub ecx, eax
movzx edx, byte [ebp - 0x35]
mov eax, edx
shl edx, 4
sub eax, edx
shl eax, 2
add eax, ecx
mov byte [ebp - 0x36], al
movzx edx, byte [ebp - 0x36]
movzx eax, byte [ebp - 0x35]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], str.Duration__d_Minutes_and__d_Seconds_n
call sym._printf
movzx eax, byte [0x41606e]
test al, al
je 0x40b57a
mov dword [esp], str._nReading_Internal_RAM...
call sym._puts
mov dword [esp + 8], 0x41605c
mov dword [esp + 4], str._sINTMEM_0xF0000.bin
lea eax, [ebp - 0xdc]
mov dword [esp], eax
call sym._sprintf
mov dword [esp], 0
call sym._time
mov dword [ebp - 0x34], eax
mov dword [esp + 8], 0x8000
mov dword [esp + 4], 0xf0000
lea eax, [ebp - 0xdc]
mov dword [esp], eax
call sym.DumpByDDLIHook_char_const__unsigned_int__unsigned_int_
mov byte [ebp - 0x27], al
mov dword [esp], 0
call sym._time
sub eax, dword [ebp - 0x34]
mov ecx, eax
mov edx, 0x88888889
mov eax, ecx
imul edx
lea eax, [edx + ecx]
sar eax, 5
mov edx, eax
mov eax, ecx
sar eax, 0x1f
sub edx, eax
mov eax, edx
mov byte [ebp - 0x35], al
mov dword [esp], 0
call sym._time
mov edx, eax
mov eax, dword [ebp - 0x34]
mov ecx, edx
sub ecx, eax
movzx edx, byte [ebp - 0x35]
mov eax, edx
shl edx, 4
sub eax, edx
shl eax, 2
add eax, ecx
mov byte [ebp - 0x36], al
movzx edx, byte [ebp - 0x36]
movzx eax, byte [ebp - 0x35]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], str.Duration__d_Minutes_and__d_Seconds_n
call sym._printf
mov dword [esp], str._nReading_Internal_RAM...
call sym._puts
mov dword [esp + 8], 0x41605c
mov dword [esp + 4], str._sINTMEM_0xE000.bin
lea eax, [ebp - 0xdc]
mov dword [esp], eax
call sym._sprintf
mov dword [esp], 0
call sym._time
mov dword [ebp - 0x34], eax
mov dword [esp + 8], 0x800
mov dword [esp + 4], 0xe000
lea eax, [ebp - 0xdc]
mov dword [esp], eax
call sym.DumpByDDLIHook_char_const__unsigned_int__unsigned_int_
mov byte [ebp - 0x27], al
mov dword [esp], 0
call sym._time
sub eax, dword [ebp - 0x34]
mov ecx, eax
mov edx, 0x88888889
mov eax, ecx
imul edx
lea eax, [edx + ecx]
sar eax, 5
mov edx, eax
mov eax, ecx
sar eax, 0x1f
sub edx, eax
mov eax, edx
mov byte [ebp - 0x35], al
mov dword [esp], 0
call sym._time
mov edx, eax
mov eax, dword [ebp - 0x34]
mov ecx, edx
sub ecx, eax
movzx edx, byte [ebp - 0x35]
mov eax, edx
shl edx, 4
sub eax, edx
shl eax, 2
add eax, ecx
mov byte [ebp - 0x36], al
movzx edx, byte [ebp - 0x36]
movzx eax, byte [ebp - 0x35]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], str.Duration__d_Minutes_and__d_Seconds_n
call sym._printf
mov dword [esp], str._nReading_External_Flash_Chip...
call sym._puts
mov dword [esp + 8], 0x41605c
mov dword [esp + 4], str._sEXTFLASH_0x800000.bin
lea eax, [ebp - 0xdc]
mov dword [esp], eax
call sym._sprintf
mov dword [esp], 0
call sym._time
mov dword [ebp - 0x34], eax
mov eax, dword [0x41602c]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x800000
lea eax, [ebp - 0xdc]
mov dword [esp], eax
call sym.DumpByDDLIHook_char_const__unsigned_int__unsigned_int_
mov byte [ebp - 0x27], al
mov dword [esp], 0
call sym._time
sub eax, dword [ebp - 0x34]
mov ecx, eax
mov edx, 0x88888889
mov eax, ecx
imul edx
lea eax, [edx + ecx]
sar eax, 5
mov edx, eax
mov eax, ecx
sar eax, 0x1f
sub edx, eax
mov eax, edx
mov byte [ebp - 0x35], al
mov dword [esp], 0
call sym._time
mov edx, eax
mov eax, dword [ebp - 0x34]
mov ecx, edx
sub ecx, eax
movzx edx, byte [ebp - 0x35]
mov eax, edx
shl edx, 4
sub eax, edx
shl eax, 2
add eax, ecx
mov byte [ebp - 0x36], al
movzx edx, byte [ebp - 0x36]
movzx eax, byte [ebp - 0x35]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], str.Duration__d_Minutes_and__d_Seconds_n
call sym._printf
call sym.closeKWP2000__
mov dword [esp], 0
call sym._exit
nop
mov byte [ebp - 0x1a], 0
mov byte [0x41604f], 0
movzx eax, byte [ebp - 0x1a]
test eax, eax
jle 0x40b744
mov dword [esp], str._n_nRetry...._n
call sym._puts
call sym.uploadTrojan__
mov byte [ebp - 0x27], al
movzx eax, byte [ebp - 0x1a]
add eax, 1
mov byte [ebp - 0x1a], al
movzx eax, byte [ebp - 0x1a]
cmp eax, 1
jle 0x40b77c
mov dword [esp], str.To_many_errors_..._aborting_...
call sym._puts
call sym.closeKWP2000__
mov dword [esp], 0
call sym._exit
cmp byte [ebp - 0x27], 0
jne 0x40b784
jmp 0x40b730
mov dword [esp], 0xa
call sym._putchar
mov dword [esp], str._nReading_Internal_Mikro_Flash...
call sym._puts
mov dword [esp + 8], 0x41605c
mov dword [esp + 4], str._sMIKRO_0x000000.bin
lea eax, [ebp - 0xdc]
mov dword [esp], eax
call sym._sprintf
mov dword [esp], 0
call sym._time
mov dword [ebp - 0x34], eax
mov eax, dword [0x416030]
mov dword [esp + 8], eax
mov dword [esp + 4], 0
lea eax, [ebp - 0xdc]
mov dword [esp], eax
call sym.dumpTrojan_char_const__unsigned_int__unsigned_int_
mov byte [ebp - 0x27], al
mov dword [esp], 0
call sym._time
sub eax, dword [ebp - 0x34]
mov ecx, eax
mov edx, 0x88888889
mov eax, ecx
imul edx
lea eax, [edx + ecx]
sar eax, 5
mov edx, eax
mov eax, ecx
sar eax, 0x1f
sub edx, eax
mov eax, edx
mov byte [ebp - 0x35], al
mov dword [esp], 0
call sym._time
mov edx, eax
mov eax, dword [ebp - 0x34]
mov ecx, edx
sub ecx, eax
movzx edx, byte [ebp - 0x35]
mov eax, edx
shl edx, 4
sub eax, edx
shl eax, 2
add eax, ecx
mov byte [ebp - 0x36], al
movzx edx, byte [ebp - 0x36]
movzx eax, byte [ebp - 0x35]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], str.Duration__d_Minutes_and__d_Seconds_n
call sym._printf
mov dword [esp], str._nReading_Mikro_Registers...
call sym._puts
mov dword [esp + 8], 0x41605c
mov dword [esp + 4], str._sREG_0xF000.bin
lea eax, [ebp - 0xdc]
mov dword [esp], eax
call sym._sprintf
mov dword [esp], 0
call sym._time
mov dword [ebp - 0x34], eax
mov dword [esp + 8], 0x1000
mov dword [esp + 4], 0xf000
lea eax, [ebp - 0xdc]
mov dword [esp], eax
call sym.dumpTrojan_char_const__unsigned_int__unsigned_int_
mov byte [ebp - 0x27], al
mov dword [esp], 0
call sym._time
sub eax, dword [ebp - 0x34]
mov ecx, eax
mov edx, 0x88888889
mov eax, ecx
imul edx
lea eax, [edx + ecx]
sar eax, 5
mov edx, eax
mov eax, ecx
sar eax, 0x1f
sub edx, eax
mov eax, edx
mov byte [ebp - 0x35], al
mov dword [esp], 0
call sym._time
mov edx, eax
mov eax, dword [ebp - 0x34]
mov ecx, edx
sub ecx, eax
movzx edx, byte [ebp - 0x35]
mov eax, edx
shl edx, 4
sub eax, edx
shl eax, 2
add eax, ecx
mov byte [ebp - 0x36], al
movzx edx, byte [ebp - 0x36]
movzx eax, byte [ebp - 0x35]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], str.Duration__d_Minutes_and__d_Seconds_n
call sym._printf
mov dword [esp], str._nReading_External_RAM...
call sym._puts
mov dword [esp + 8], 0x41605c
mov dword [esp + 4], str._sEXTMEM_0x380000.bin
lea eax, [ebp - 0xdc]
mov dword [esp], eax
call sym._sprintf
mov dword [esp], 0
call sym._time
mov dword [ebp - 0x34], eax
mov dword [esp + 8], 0x8000
mov dword [esp + 4], 0x380000
lea eax, [ebp - 0xdc]
mov dword [esp], eax
call sym.dumpTrojan_char_const__unsigned_int__unsigned_int_
mov byte [ebp - 0x27], al
mov dword [esp], 0
call sym._time
sub eax, dword [ebp - 0x34]
mov ecx, eax
mov edx, 0x88888889
mov eax, ecx
imul edx
lea eax, [edx + ecx]
sar eax, 5
mov edx, eax
mov eax, ecx
sar eax, 0x1f
sub edx, eax
mov eax, edx
mov byte [ebp - 0x35], al
mov dword [esp], 0
call sym._time
mov edx, eax
mov eax, dword [ebp - 0x34]
mov ecx, edx
sub ecx, eax
movzx edx, byte [ebp - 0x35]
mov eax, edx
shl edx, 4
sub eax, edx
shl eax, 2
add eax, ecx
mov byte [ebp - 0x36], al
movzx edx, byte [ebp - 0x36]
movzx eax, byte [ebp - 0x35]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], str.Duration__d_Minutes_and__d_Seconds_n
call sym._printf
movzx eax, byte [0x41606e]
test al, al
je 0x40bad0
mov dword [esp], str._nReading_Internal_RAM...
call sym._puts
mov dword [esp + 8], 0x41605c
mov dword [esp + 4], str._sINTMEM_0xF0000.bin
lea eax, [ebp - 0xdc]
mov dword [esp], eax
call sym._sprintf
mov dword [esp], 0
call sym._time
mov dword [ebp - 0x34], eax
mov dword [esp + 8], 0x8000
mov dword [esp + 4], 0xf0000
lea eax, [ebp - 0xdc]
mov dword [esp], eax
call sym.dumpTrojan_char_const__unsigned_int__unsigned_int_
mov byte [ebp - 0x27], al
mov dword [esp], 0
call sym._time
sub eax, dword [ebp - 0x34]
mov ecx, eax
mov edx, 0x88888889
mov eax, ecx
imul edx
lea eax, [edx + ecx]
sar eax, 5
mov edx, eax
mov eax, ecx
sar eax, 0x1f
sub edx, eax
mov eax, edx
mov byte [ebp - 0x35], al
mov dword [esp], 0
call sym._time
mov edx, eax
mov eax, dword [ebp - 0x34]
mov ecx, edx
sub ecx, eax
movzx edx, byte [ebp - 0x35]
mov eax, edx
shl edx, 4
sub eax, edx
shl eax, 2
add eax, ecx
mov byte [ebp - 0x36], al
movzx edx, byte [ebp - 0x36]
movzx eax, byte [ebp - 0x35]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], str.Duration__d_Minutes_and__d_Seconds_n
call sym._printf
mov dword [esp], str._nReading_Internal_RAM...
call sym._puts
mov dword [esp + 8], 0x41605c
mov dword [esp + 4], str._sINTMEM_0xE000.bin
lea eax, [ebp - 0xdc]
mov dword [esp], eax
call sym._sprintf
mov dword [esp], 0
call sym._time
mov dword [ebp - 0x34], eax
mov dword [esp + 8], 0x800
mov dword [esp + 4], 0xe000
lea eax, [ebp - 0xdc]
mov dword [esp], eax
call sym.dumpTrojan_char_const__unsigned_int__unsigned_int_
mov byte [ebp - 0x27], al
mov dword [esp], 0
call sym._time
sub eax, dword [ebp - 0x34]
mov ecx, eax
mov edx, 0x88888889
mov eax, ecx
imul edx
lea eax, [edx + ecx]
sar eax, 5
mov edx, eax
mov eax, ecx
sar eax, 0x1f
sub edx, eax
mov eax, edx
mov byte [ebp - 0x35], al
mov dword [esp], 0
call sym._time
mov edx, eax
mov eax, dword [ebp - 0x34]
mov ecx, edx
sub ecx, eax
movzx edx, byte [ebp - 0x35]
mov eax, edx
shl edx, 4
sub eax, edx
shl eax, 2
add eax, ecx
mov byte [ebp - 0x36], al
movzx edx, byte [ebp - 0x36]
movzx eax, byte [ebp - 0x35]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], str.Duration__d_Minutes_and__d_Seconds_n
call sym._printf
mov dword [esp], str._nReading_External_Flash_Chip...
call sym._puts
mov dword [esp + 8], 0x41605c
mov dword [esp + 4], str._sEXTFLASH_0x800000.bin
lea eax, [ebp - 0xdc]
mov dword [esp], eax
call sym._sprintf
mov dword [esp], 0
call sym._time
mov dword [ebp - 0x34], eax
mov eax, dword [0x41602c]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x800000
lea eax, [ebp - 0xdc]
mov dword [esp], eax
call sym.dumpTrojan_char_const__unsigned_int__unsigned_int_
mov byte [ebp - 0x27], al
mov dword [esp], 0
call sym._time
sub eax, dword [ebp - 0x34]
mov ecx, eax
mov edx, 0x88888889
mov eax, ecx
imul edx
lea eax, [edx + ecx]
sar eax, 5
mov edx, eax
mov eax, ecx
sar eax, 0x1f
sub edx, eax
mov eax, edx
mov byte [ebp - 0x35], al
mov dword [esp], 0
call sym._time
mov edx, eax
mov eax, dword [ebp - 0x34]
mov ecx, edx
sub ecx, eax
movzx edx, byte [ebp - 0x35]
mov eax, edx
shl edx, 4
sub eax, edx
shl eax, 2
add eax, ecx
mov byte [ebp - 0x36], al
movzx edx, byte [ebp - 0x36]
movzx eax, byte [ebp - 0x35]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], str.Duration__d_Minutes_and__d_Seconds_n
call sym._printf
mov dword [esp], 0xa
call sym._putchar
mov dword [esp], str.Sending_Exit_Code.._ECU_will_Reboot_After__Program_Finish_
call sym._puts
call sym.closeKWP2000__
mov dword [esp], 0
call sym._exit
mov dword [esp], str.There_is_no_Mode_selected__Please_read_the_usage_
call sym._puts
mov dword [esp], 0
call sym._exit
lea esp, [ebp - 0xc]
pop ecx
pop ebx
pop esi
pop ebp
lea esp, [ecx - 4]
ret