Function at 0x422e70
Capabilities:
Read file on windows
Set registry value

Disassembly:
sub esp, 8
mov eax, dword [0x44d864]
push ebx
mov ebx, dword [sym.imp.USER32.dll_SendMessageA]
push ebp
push esi
push edi
push str.Loading_Job_file...
push 0
push 0x401
push eax
call ebx
push 0x7f02
push 0
call dword [sym.imp.USER32.dll_LoadCursorA]
mov esi, dword [sym.imp.USER32.dll_SetCursor]
push eax
mov dword [0x44c0f8], eax
call esi
mov edx, dword [0x44ccf4]
lea ecx, [esp + 0x14]
push 0
push ecx
push 0xafc
push 0x4432c0
push edx
mov dword [0x44d530], eax
call dword [sym.imp.KERNEL32.dll_ReadFile]
cmp dword [esp + 0x14], 0xafc
je 0x422f11
mov eax, dword [0x44ccf4]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [0x44d530]
push ecx
call esi
mov edx, dword [0x44c0f8]
push edx
call dword [sym.imp.USER32.dll_DestroyCursor]
mov eax, dword [esp + 0x1c]
push 0x10
push str.Job_function
push str.Fail_to_load_Job_file__
push eax
jmp 0x422fb1
mov eax, dword [esp + 0x24]
mov ebp, dword [esp + 0x1c]
test eax, eax
jne 0x422f3e
mov edx, dword [0x44d514]
push 0
push 0x4223d0
push ebp
push str.JOB_BOX
push edx
mov byte [0x437718], 1
call dword [sym.imp.USER32.dll_DialogBoxParamA]
xor edi, edi
xor esi, esi
mov al, byte [esi + 0x4432c0]
push eax
push edi
call fcn.00418560
add esp, 8
inc esi
cmp esi, 0xafc
mov edi, eax
jb 0x422f42
mov eax, dword [0x44ccf4]
lea ecx, [esp + 0x14]
push 0
push ecx
lea edx, [esp + 0x1a]
push 2
push edx
push eax
call dword [sym.imp.KERNEL32.dll_ReadFile]
cmp di, word [esp + 0x12]
je 0x422fdd
mov ecx, dword [0x44ccf4]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edx, dword [0x44d530]
push edx
call dword [sym.imp.USER32.dll_SetCursor]
mov eax, dword [0x44c0f8]
push eax
call dword [sym.imp.USER32.dll_DestroyCursor]
push 0x10
push str.Job_function
push str.Bad_Job_file__
push ebp
call dword [sym.imp.USER32.dll_MessageBoxA]
mov ecx, dword [0x44d864]
push str.Fail_to_load_Job_function
push 0
push 0x401
push ecx
call ebx
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x4235fe
jmp 0x4235b8
mov esi, dword [sym.imp.KERNEL32.dll_lstrcmpA]
push str.XCY8C3X.EXE
push 0x4432c0
call esi
test eax, eax
jne 0x423562
mov edx, dword [0x443444]
mov eax, dword [edx*4 + 0x42e7f8]
push eax
push 0x443404
call esi
test eax, eax
jne 0x423562
mov eax, dword [0x443444]
mov ecx, dword [0x443448]
mov esi, dword [sym.imp.USER32.dll_SetDlgItemTextA]
mov dword [0x439fc8], eax
mov edx, dword [eax*4 + 0x42e7f8]
mov dword [eax*4 + 0x439fcc], ecx
mov eax, dword [0x44d52c]
push edx
push 0x428
push eax
call esi
mov eax, dword [0x439fc8]
mov ecx, dword [eax*4 + 0x439fcc]
mov edx, dword [eax*4 + 0x431580]
shl ecx, 7
mov eax, dword [ecx + edx]
mov ecx, dword [0x44d52c]
push eax
push 0x429
push ecx
call esi
mov eax, dword [0x439fc8]
mov edx, dword [eax*4 + 0x439fcc]
mov eax, dword [eax*4 + 0x431580]
shl edx, 7
mov ecx, dword [edx + eax + 0x50]
mov edx, dword [0x44d52c]
push ecx
push 0x42a
push edx
call esi
mov eax, dword [0x439fc8]
mov ecx, dword [eax*4 + 0x439fcc]
mov edx, dword [eax*4 + 0x431580]
shl ecx, 7
mov eax, dword [ecx + edx + 0x40]
mov ecx, dword [0x44d52c]
push eax
push 0x42b
push ecx
call esi
mov esi, dword [sym.imp.USER32.dll_wsprintfA]
push str.SoftwareHi_Lo_SystemsALL_100_
push 0x44d540
call esi
add esp, 8
push 0x44d48c
push 0x44d740
push 0
push 0xf003f
push 0
push str.XCY8C3X.EXE
push 0
push 0x44d540
push MenuHelp
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
mov edx, dword [0x439fc8]
mov eax, dword [edx*4 + 0x42e7f8]
push eax
push 0x432474
push 0x44d540
call esi
mov ecx, dword [0x439fc8]
xor eax, eax
add esp, 0xc
mov edx, dword [0x44d740]
mov edi, dword [ecx*4 + 0x42e7f8]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ebx, dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
not ecx
push ecx
push 0x44d540
push 1
push eax
push str.CurrentSelectedMfr
push edx
call ebx
mov eax, dword [0x439fc8]
mov ecx, dword [eax*4 + 0x439fcc]
shl ecx, 7
mov edx, dword [eax*4 + 0x431580]
mov eax, dword [ecx + edx]
push eax
push 0x432474
push 0x44d540
call esi
mov eax, dword [0x439fc8]
add esp, 0xc
mov ecx, dword [eax*4 + 0x439fcc]
mov edx, dword [eax*4 + 0x431580]
shl ecx, 7
xor eax, eax
mov edi, dword [ecx + edx]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
push ecx
push 0x44d540
push 1
push eax
mov eax, dword [0x44d740]
push str.CurrentSelectedType
push eax
call ebx
mov ecx, dword [0x44d740]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov edi, dword [sym.imp.KERNEL32.dll_GetLocalTime]
push 0x44d4f0
call edi
mov eax, dword [0x439fc8]
mov edx, dword [eax*4 + 0x439fcc]
mov ecx, dword [eax*4 + 0x431580]
mov eax, dword [eax*4 + 0x42e7f8]
shl edx, 7
mov edx, dword [edx + ecx]
mov ecx, dword [0x44d4fc]
push edx
push eax
mov eax, dword [0x44d4f8]
xor edx, edx
mov dx, word [0x44d4fa]
and ecx, 0xffff
push ecx
and eax, 0xffff
push edx
push eax
push str.__02d:_02d:_02d__tSelect_Mfr.___s_t_Type___s_t__r_n
push 0x44d540
call esi
add esp, 0x1c
call fcn.0040ac50
mov ebx, dword [esp + 0x20]
test ebx, ebx
jne 0x42326b
push 1
call fcn.00424180
add esp, 4
test eax, eax
jne 0x42325a
call fcn.00424330
push 0x30
push 0x432594
push str.Error_Identification_on_hardware__
push ebp
call dword [sym.imp.USER32.dll_MessageBoxA]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 8
ret
push 1
push ebp
call fcn.004093b0
push ebp
call fcn.00408c00
add esp, 0xc
push ebp
call fcn.00407d50
mov eax, dword [0x443c80]
mov ecx, dword [0x443c78]
mov edx, dword [0x443c7c]
mov dword [0x439eb0], eax
sub eax, ecx
add esp, 4
add eax, edx
mov dword [0x439eb4], ecx
mov dword [0x42e59c], edx
mov dword [0x42e598], eax
call fcn.00408ba0
call fcn.004240a0
push 0x44d4f0
call edi
mov ecx, dword [0x439eb4]
mov edx, dword [0x439eb0]
mov eax, dword [0x44d4fc]
push ecx
push edx
mov edx, dword [0x44d4f8]
xor ecx, ecx
and eax, 0xffff
mov cx, word [0x44d4fa]
push eax
and edx, 0xffff
push ecx
push edx
push str.__02d:_02d:_02d__tSet_Programmer_Buffer_Start___08X__tDevice_Start___08X_r_n
push 0x44d540
call esi
add esp, 0x1c
call fcn.0040ac50
mov eax, dword [0x443c94]
push 0x443464
push 0x42e350
mov dword [0x42e554], eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push 0x42e350
push str.XCY8C3X.EXE
push str._s___s
push 0x44d540
call esi
mov ecx, dword [0x44c0e8]
add esp, 0x10
push 0x44d540
push ecx
call dword [sym.imp.USER32.dll_SetWindowTextA]
mov eax, dword [0x44d51c]
mov edx, dword [0x443664]
push eax
mov dword [0x44d49c], edx
call dword [sym.imp.KERNEL32.dll_GlobalLock]
test eax, eax
mov dword [0x44ccb4], eax
je 0x423375
mov edx, dword [0x44d49c]
lea ecx, [esp + 0x14]
push 0
push ecx
push edx
push eax
mov eax, dword [0x44ccf4]
push eax
call dword [sym.imp.KERNEL32.dll_ReadFile]
push ebp
call fcn.00421b30
mov ecx, dword [0x44d51c]
add esp, 4
push ecx
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov edx, dword [0x44ccf4]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [0x44d530]
push eax
call dword [sym.imp.USER32.dll_SetCursor]
mov ecx, dword [0x44c0f8]
push ecx
call dword [sym.imp.USER32.dll_DestroyCursor]
mov edx, dword [esp + 0x14]
mov eax, dword [0x44d49c]
cmp edx, eax
je 0x423449
test ebx, ebx
jne 0x4233cb
call fcn.00424330
push 0x10
push str.Job_function
push str.Fail_to_load_Job_file__
push ebp
call dword [sym.imp.USER32.dll_MessageBoxA]
mov eax, dword [0x44d864]
push str.Fail_to_load_Job_function
push 0
push 0x401
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x4235fe
push 0x44d4f0
call edi
mov ecx, dword [0x44d4fc]
mov eax, dword [0x44d4f8]
xor edx, edx
and ecx, 0xffff
mov dx, word [0x44d4fa]
push ecx
and eax, 0xffff
push edx
push eax
push str.__02d:_02d:_02d__tFail_to_load_Job_function__r_n
push 0x44d540
call esi
add esp, 0x14
call fcn.0040ac50
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 8
ret
call fcn.00409e30
mov ecx, dword [0x443460]
mov eax, dword [0x439578]
cmp ecx, eax
mov dword [0x42e034], 0
je 0x4234f3
test ebx, ebx
jne 0x423474
call fcn.00424330
push 0x10
push str.Job_function
push str.Bad_data_code__
push ebp
call dword [sym.imp.USER32.dll_MessageBoxA]
mov edx, dword [0x44d864]
push str.Fail_to_load_Job_function
push 0
push 0x401
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x4235fe
push 0x44d4f0
call edi
mov eax, dword [0x44d4fc]
mov edx, dword [0x44d4f8]
xor ecx, ecx
and eax, 0xffff
mov cx, word [0x44d4fa]
push eax
and edx, 0xffff
push ecx
push edx
push str.__02d:_02d:_02d__tFail_to_load_Job_function__r_n
push 0x44d540
call esi
add esp, 0x14
call fcn.0040ac50
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 8
ret
mov eax, dword [0x44d864]
push 0x43a0e0
push 0
push 0x401
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x423555
push 0x44d4f0
call edi
mov ecx, dword [0x44d4fc]
mov eax, dword [0x44d4f8]
xor edx, edx
and ecx, 0xffff
mov dx, word [0x44d4fa]
push 0x439998
push ecx
and eax, 0xffff
push edx
push eax
push str.__02d:_02d:_02d__tLoad_Job_function_OK__File_Name_:__s__r_n
push 0x44d540
call esi
add esp, 0x18
call fcn.0040ac50
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 8
ret
mov ecx, dword [0x44ccf4]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edx, dword [0x44d530]
push edx
call dword [sym.imp.USER32.dll_SetCursor]
mov eax, dword [0x44c0f8]
push eax
call dword [sym.imp.USER32.dll_DestroyCursor]
push 0x10
push str.Job_function
push str.Wrong_Job_file__
push ebp
call dword [sym.imp.USER32.dll_MessageBoxA]
mov ecx, dword [0x44d864]
push str.Fail_to_load_Job_function
push 0
push 0x401
push ecx
call ebx
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x4235fe
push 0x44d4f0
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
mov edx, dword [0x44d4fc]
mov ecx, dword [0x44d4f8]
xor eax, eax
and edx, 0xffff
mov ax, word [0x44d4fa]
push edx
and ecx, 0xffff
push eax
push ecx
push str.__02d:_02d:_02d__tFail_to_load_Job_function__r_n
push 0x44d540
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x14
call fcn.0040ac50
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 8
ret