Function at 0x401000
Capabilities:
Allocate thread local storage

Disassembly:
push 0x7c
push 0
push 0x43b688
call sub.MSVCRT.dll_memset
add esp, 0xc
push 0
call sub.KERNEL32.dll_GetModuleHandleA
mov dword [0x43b68c], eax
push 0
push 0x1000
push 0
call sub.KERNEL32.dll_HeapCreate
mov dword [0x43b688], eax
mov eax, str.WCPC_NG_Ver._1.27
mov dword [0x43b690], eax
call fcn.00406310
call fcn.004061fe
call fcn.00405933
call fcn.004053b6
call fcn.004053a2
call fcn.0040531d
call fcn.00405306
call fcn.00403f81
call fcn.00403809
call fcn.00403730
call fcn.0040341d
mov dword [section..data], 0x14
lea eax, [0x4024f2]
push eax
call fcn.00403590
mov dword [section..data], 0x23
mov dword [0x43b694], 0
mov dword [section..data], 0x2e
push 0x43b6fc
push 0x40831c
push 8
push 0x2711
push 4
call fcn.0040616d
mov dword [section..data], 0x34
push 0xcc0000
push str.WCPC_Firmware_Loader
push 0x5a
push 0x15e
push 0x64
push 0x190
push 1
call fcn.004042d1
mov dword [0x43b6a0], eax
mov dword [section..data], 0x35
cmp dword [0x43b6a0], 0
je 0x4021a1
mov dword [section..data], 0x3a
push 0x4080ef
push 0x1e
push 0x50
push 0xa
push 0xfa
push 0
call fcn.00403993
mov dword [section..data], 0x3b
push str.Cancel
push 0x1e
push 0x50
push 0x32
push 0xfa
push 1
call fcn.00403993
mov dword [section..data], 0x3c
push 0x4080ef
push 0x32
push 0xc8
push 0x19
push 0x14
push 2
call fcn.00403b06
mov dword [section..data], 0x3d
push 0x4080ef
push 0x32
push 0xc8
push 0x2d
push 0x14
push 3
call fcn.00403b06
mov dword [section..data], 0x40
push 0x43b6d4
call fcn.004025c7
mov dword [0x43b6a4], eax
mov dword [section..data], 0x43
lea eax, [0x40235e]
push eax
push 0x1f4
push 1
push dword [0x43b6a0]
call sub.USER32.DLL_SetTimer
mov dword [0x43b6a4], eax
mov dword [0x43b6a8], 1
mov dword [section..data], 0x48
mov eax, 0x20
cmp eax, dword [0x43b6a8]
jl 0x401408
mov dword [section..data], 0x49
push 0x43b6d4
call fcn.00402563
mov dword [section..data], 0x4a
push 0
push 1
push 8
push 0x1c200
push dword [0x43b6a8]
push 0x43b6d4
call fcn.0040261c
mov dword [0x43b6a4], eax
mov dword [section..data], 0x4b
mov ebx, dword [0x43b6a4]
and ebx, ebx
jne 0x4012bb
mov dword [section..data], 0x4c
push 0x43b6d4
call fcn.00402563
mov dword [section..data], 0x4d
jmp 0x4013e8
mov dword [section..data], 0x4d
mov dword [section..data], 0x4e
mov edx, str.SM_0_r
lea ecx, [0x43b6ac]
call fcn.00403008
mov dword [section..data], 0x4f
push dword [0x43b6ac]
call fcn.00403150
push eax
mov eax, dword [0x43b6ac]
push eax
push 0x43b6d4
call fcn.00402ac8
mov dword [0x43b6a4], eax
mov dword [section..data], 0x50
push 0xc8
call fcn.00403713
mov dword [section..data], 0x51
push 0x43b6d4
call fcn.004028d1
mov dword [0x43b6b0], eax
mov dword [section..data], 0x52
lea ebp, [0x43b6d4]
cmp byte [ebp + 0x24], 0
je 0x4013de
mov dword [section..data], 0x53
lea ebp, [0x43b6d4]
mov byte [ebp + 0x24], 0
mov dword [section..data], 0x54
push 0x43b6d4
call fcn.004028d1
mov dword [0x43b6b0], eax
mov dword [section..data], 0x55
lea ebp, [0x43b6d4]
push dword [ebp + 0x20]
mov edx, 0x4082fc
pop ecx
call fcn.00406360
je 0x4013b6
mov dword [section..data], 0x56
jmp 0x401408
mov dword [section..data], 0x57
mov dword [section..data], 0x58
push 0x43b6d4
call fcn.00402563
mov dword [section..data], 0x59
mov dword [section..data], 0x5a
mov dword [section..data], 0x5b
mov dword [section..data], 0x5c
inc dword [0x43b6a8]
jno 0x401222
mov dword [section..data], 0x5f
mov ebx, dword [0x43b6a8]
cmp ebx, 0x20
jg 0x401435
lea ebp, [0x43b6d4]
push dword [ebp + 0x20]
mov edx, 0x4082fc
pop ecx
call fcn.00406360
je 0x401435
jmp 0x40143c
mov eax, 1
jmp 0x40143e
xor eax, eax
and eax, eax
je 0x401499
mov dword [section..data], 0x60
push str.No_device_detected_on_Com_Port_1_32
push 2
call fcn.00403b26
mov dword [section..data], 0x61
push str.Close
push 1
call fcn.00403b26
mov dword [section..data], 0x62
mov dword [section..data], 0x63
call 0x4021ab
mov dword [section..data], 0x64
jmp 0x401474
mov dword [section..data], 0x65
mov dword [section..data], 0x6a
lea ebp, [0x43b6d4]
cmp byte [ebp + 0x24], 0
je 0x4014f2
mov dword [section..data], 0x6b
lea ebp, [0x43b6d4]
mov byte [ebp + 0x24], 0
mov dword [section..data], 0x6c
push 0x43b6d4
call fcn.004028d1
mov dword [0x43b6b0], eax
mov dword [section..data], 0x6d
jmp 0x4014a3
mov dword [section..data], 0x6e
mov edx, 0x40813d
lea ecx, [0x43b6ac]
call fcn.00403008
mov dword [section..data], 0x6f
push dword [0x43b6ac]
call fcn.00403150
push eax
mov eax, dword [0x43b6ac]
push eax
push 0x43b6d4
call fcn.00402ac8
mov dword [0x43b6a4], eax
mov dword [section..data], 0x70
lea ebp, [0x43b6d4]
movsx ebx, byte [ebp + 0x24]
and ebx, ebx
jne 0x401574
mov dword [section..data], 0x71
push 0x43b6d4
call fcn.004028d1
mov dword [0x43b6b0], eax
mov dword [section..data], 0x72
jmp 0x401537
mov dword [section..data], 0x73
push 0x43b6d4
call fcn.004028d1
mov dword [0x43b6b0], eax
mov dword [section..data], 0x75
mov eax, dword [0x43b8c0]
push eax
push eax
push 0x4080fb
push 1
lea ebp, [0x43b6d4]
push dword [ebp + 0x20]
call fcn.00403180
inc dword [0x43b8c0]
mov edx, str.Model
pop ecx
mov dword [0x43b8c0], ecx
add ecx, dword [0x43a964]
call fcn.00406360
je 0x401641
mov dword [section..data], 0x76
mov eax, dword [0x43b8c0]
push eax
push eax
push 0x4080fb
push 2
lea ebp, [0x43b6d4]
push dword [ebp + 0x20]
call fcn.00403180
push 0x43b6b4
call fcn.00406390
mov dword [section..data], 0x77
mov eax, dword [0x43b8c0]
push eax
push eax
push 0x4080fb
push 4
push dword [ebp + 0x20]
call fcn.00403180
push 0x43b6b8
call fcn.00406390
mov dword [section..data], 0x78
jmp 0x40164b
mov dword [section..data], 0x78
mov dword [section..data], 0x7a
mov dword [section..data], 0x7e
lea ecx, [0x43b6bc]
mov edx, dword [0x43b690]
call fcn.00403008
add dword [0x43b690], eax
mov dword [section..data], 0x7f
mov eax, dword [0x43b8c0]
push eax
push eax
push 0x4080fb
push 1
push dword [0x43b6bc]
call fcn.00403180
push 0x43b6c0
call fcn.00406390
mov dword [section..data], 0x80
mov eax, dword [0x43b8c0]
push eax
push eax
push 0x4080fb
push 3
push dword [0x43b6bc]
call fcn.00403180
push 0x43b6c4
call fcn.00406390
mov dword [section..data], 0x82
jmp 0x401760
mov dword [section..data], 0x85
mov dword [section..data], 0x86
mov eax, dword [0x43b8c0]
push eax
push eax
mov edx, str.Found__Ver
call fcn.00406410
mov edx, dword [0x43b6b8]
call fcn.00406410
mov edx, str.__replace_with__Ver
call fcn.00406410
mov edx, dword [0x43b6c4]
call fcn.00406410
mov edx, 0x4080f8
call fcn.00406410
inc dword [0x43b8c0]
push 2
mov edx, dword [0x43a964]
add dword [esp + 4], edx
call fcn.00403b26
pop dword [0x43b8c0]
mov dword [section..data], 0x87
mov dword [0x43b694], 2
mov dword [section..data], 0x88
push 0x408218
push 0
call fcn.00403b26
mov dword [section..data], 0x89
mov dword [section..data], 0x8a
mov ebx, dword [0x43b694]
cmp ebx, 3
je 0x401836
mov dword [section..data], 0x8b
call 0x4021ab
mov dword [section..data], 0x8c
jmp 0x401806
mov dword [section..data], 0x92
mov dword [0x43b698], 0
mov dword [section..data], 0x93
push dword [0x43b6c8]
mov edx, 0x4080fd
pop ecx
call fcn.00406360
jne 0x4018db
mov dword [section..data], 0x94
lea ecx, [0x43b6c8]
mov edx, dword [0x43b690]
call fcn.00403008
add dword [0x43b690], eax
mov dword [section..data], 0x95
mov edx, dword [0x43b6c8]
push dword [0x43b8c0]
call fcn.00406410
mov ebx, dword [0x43b698]
mov ebp, dword [0x43b6fc]
shl ebx, 2
lea eax, [ebp + ebx]
push eax
call fcn.00406390
mov dword [section..data], 0x96
inc dword [0x43b698]
mov dword [section..data], 0x97
jmp 0x40184a
mov dword [section..data], 0x9b
lea ebp, [0x43b6d4]
mov byte [ebp + 0x24], 0
mov dword [section..data], 0x9c
mov edx, str.SWS_70_r
lea ecx, [0x43b6ac]
call fcn.00403008
mov dword [section..data], 0x9d
push dword [0x43b6ac]
call fcn.00403150
push eax
mov eax, dword [0x43b6ac]
push eax
push 0x43b6d4
call fcn.00402ac8
mov dword [0x43b6a4], eax
mov dword [section..data], 0x9e
lea ebp, [0x43b6d4]
movsx ebx, byte [ebp + 0x24]
and ebx, ebx
jne 0x401971
mov dword [section..data], 0x9f
push 0x43b6d4
call fcn.004028d1
mov dword [0x43b6b0], eax
mov dword [section..data], 0xa0
jmp 0x401934
mov dword [section..data], 0xa2
lea ebp, [0x43b6d4]
push dword [ebp + 0x20]
mov edx, 0x4082fc
pop ecx
call fcn.00406360
jne 0x4019fc
mov dword [section..data], 0xa3
mov dword [0x43b694], 4
mov dword [section..data], 0xa4
push str.Error___Could_not_update_Water_Separator_Temperature
push 2
call fcn.00403b26
mov dword [section..data], 0xa5
push 0x4080ef
push 0
call fcn.00403b26
mov dword [section..data], 0xa6
mov dword [section..data], 0xa7
call 0x4021ab
mov dword [section..data], 0xa8
jmp 0x4019d7
mov dword [section..data], 0xa9
mov dword [section..data], 0xac
lea ebp, [0x43b6d4]
mov byte [ebp + 0x24], 0
mov dword [section..data], 0xad
mov edx, str.FRED_r
lea ecx, [0x43b6ac]
call fcn.00403008
mov dword [section..data], 0xae
push dword [0x43b6ac]
call fcn.00403150
push eax
mov eax, dword [0x43b6ac]
push eax
push 0x43b6d4
call fcn.00402ac8
mov dword [0x43b6a4], eax
mov dword [section..data], 0xaf
lea ebp, [0x43b6d4]
movsx ebx, byte [ebp + 0x24]
and ebx, ebx
jne 0x401a9c
mov dword [section..data], 0xb0
push 0x43b6d4
call fcn.004028d1
mov dword [0x43b6b0], eax
mov dword [section..data], 0xb1
jmp 0x401a5f
mov dword [section..data], 0xb3
lea ebp, [0x43b6d4]
push dword [ebp + 0x20]
mov edx, str.READY
pop ecx
call fcn.00406360
jne 0x401b27
mov dword [section..data], 0xb4
mov dword [0x43b694], 4
mov dword [section..data], 0xb5
push str.Error___Device_loader_could_not_be_started
push 2
call fcn.00403b26
mov dword [section..data], 0xb6
push 0x4080ef
push 0
call fcn.00403b26
mov dword [section..data], 0xb7
mov dword [section..data], 0xb8
call 0x4021ab
mov dword [section..data], 0xb9
jmp 0x401b02
mov dword [section..data], 0xba
mov dword [section..data], 0xbb
mov dword [0x43b694], 5
mov dword [section..data], 0xbc
push 0x4080ef
push 0
call fcn.00403b26
mov dword [section..data], 0xbd
push 0x4080ef
push 1
call fcn.00403b26
mov dword [section..data], 0xbe
lea ebp, [0x43b6d4]
mov byte [ebp + 0x24], 0
mov dword [section..data], 0xbf
mov edx, 0x4081c0
lea ecx, [0x43b6ac]
call fcn.00403008
mov dword [section..data], 0xc0
push dword [0x43b6ac]
call fcn.00403150
push eax
mov eax, dword [0x43b6ac]
push eax
push 0x43b6d4
call fcn.00402ac8
mov dword [0x43b6a4], eax
mov dword [section..data], 0xc1
push 0xc8
call fcn.00403713
mov dword [section..data], 0xc2
push 0x43b6d4
call fcn.004028d1
mov dword [0x43b6b0], eax
mov dword [section..data], 0xc4
lea ebp, [0x43b6d4]
mov byte [ebp + 0x24], 0
mov dword [section..data], 0xc5
mov edx, 0x408224
lea ecx, [0x43b6ac]
call fcn.00403008
mov dword [section..data], 0xc6
push dword [0x43b6ac]
call fcn.00403150
push eax
mov eax, dword [0x43b6ac]
push eax
push 0x43b6d4
call fcn.00402ac8
mov dword [0x43b6a4], eax
mov dword [section..data], 0xc7
push 0x64
call fcn.00403713
mov dword [section..data], 0xc8
push 0x43b6d4
call fcn.004028d1
mov dword [0x43b6b0], eax
mov dword [section..data], 0xca
lea ebp, [0x43b6d4]
mov byte [ebp + 0x24], 0
mov dword [section..data], 0xcc
mov dword [0x43b6cc], 0
mov dword [0x43b69c], 0
mov dword [section..data], 0xcd
mov ebx, dword [0x43b698]
add ebx, 0xfffffffe
cmp ebx, dword [0x43b69c]
jl 0x401e85
mov dword [section..data], 0xce
mov ebx, dword [0x43b69c]
mov ebp, dword [0x43b6fc]
shl ebx, 2
mov edx, dword [ebp + ebx]
push dword [0x43b8c0]
call fcn.00406410
mov edx, 0x4080f6
call fcn.00406410
push 0x43b6ac
call fcn.00406390
mov dword [section..data], 0xd0
push dword [0x43b6ac]
call fcn.00403150
push eax
mov eax, dword [0x43b6ac]
push eax
push 0x43b6d4
call fcn.00402ac8
mov dword [0x43b6a4], eax
mov dword [section..data], 0xd1
lea ebp, [0x43b6d4]
movsx ebx, byte [ebp + 0x24]
and ebx, ebx
jne 0x401d78
mov dword [section..data], 0xd2
push 0x43b6d4
call fcn.004028d1
mov dword [0x43b6b0], eax
mov dword [section..data], 0xd3
jmp 0x401d3b
mov dword [section..data], 0xd5
lea ebp, [0x43b6d4]
push dword [ebp + 0x20]
mov edx, 0x4082fc
pop ecx
call fcn.00406360
jne 0x401e42
mov dword [section..data], 0xd6
push dword [0x43b6ac]
call fcn.00403150
push eax
mov eax, dword [0x43b6ac]
push eax
push 0x43b6d4
call fcn.00402ac8
mov dword [0x43b6a4], eax
mov dword [section..data], 0xd7
lea ebp, [0x43b6d4]
movsx ebx, byte [ebp + 0x24]
and ebx, ebx
jne 0x401e04
mov dword [section..data], 0xd8
push 0x43b6d4
call fcn.004028d1
mov dword [0x43b6b0], eax
mov dword [section..data], 0xd9
jmp 0x401dc7
mov dword [section..data], 0xda
lea ebp, [0x43b6d4]
push dword [ebp + 0x20]
mov edx, 0x4082fc
pop ecx
call fcn.00406360
jne 0x401e38
mov dword [section..data], 0xdb
mov dword [0x43b6cc], 1
mov dword [section..data], 0xdc
mov dword [section..data], 0xdd
mov dword [section..data], 0xde
lea ebp, [0x43b6d4]
mov byte [ebp + 0x24], 0
mov dword [section..data], 0xdf
call fcn.004042f4
mov dword [section..data], 0xe0
inc dword [0x43b69c]
jno 0x401cb5
mov dword [section..data], 0xe1
mov dword [0x43b694], 6
mov dword [section..data], 0xe2
mov ebx, dword [0x43b6cc]
cmp ebx, 1
jne 0x401eec
mov dword [section..data], 0xe3
push str.A_serious_malfuction_has_occurred.__The_device_will_be_inoperative_and_must_be_returned_to_the_manufacturer_for_firmware_update.
push 2
call fcn.00403b26
mov dword [section..data], 0xe4
push 0x4080ef
push 0
call fcn.00403b26
mov dword [section..data], 0xe5
jmp 0x401f28
mov dword [section..data], 0xe5
mov dword [section..data], 0xe6
push str.Firmware_has_been_loaded.
push 2
call fcn.00403b26
mov dword [section..data], 0xe7
push 0x4080ef
push 0
call fcn.00403b26
mov dword [section..data], 0xe8
mov dword [section..data], 0xe9
mov edx, 0x4082ee
lea ecx, [0x43b6ac]
call fcn.00403008
mov dword [section..data], 0xea
push dword [0x43b6ac]
call fcn.00403150
push eax
mov eax, dword [0x43b6ac]
push eax
push 0x43b6d4
call fcn.00402ac8
mov dword [0x43b6a4], eax
mov dword [section..data], 0xeb
lea ebp, [0x43b6d4]
movsx ebx, byte [ebp + 0x24]
and ebx, ebx
jne 0x401fb4
mov dword [section..data], 0xec
push 0x43b6d4
call fcn.004028d1
mov dword [0x43b6b0], eax
mov dword [section..data], 0xed
jmp 0x401f77
mov dword [section..data], 0xef
lea ebp, [0x43b6d4]
mov byte [ebp + 0x24], 0
mov dword [section..data], 0xf0
lea ebp, [0x43b6d4]
movsx ebx, byte [ebp + 0x24]
and ebx, ebx
jne 0x402005
mov dword [section..data], 0xf1
push 0x43b6d4
call fcn.004028d1
mov dword [0x43b6b0], eax
mov dword [section..data], 0xf2
jmp 0x401fc8
mov dword [section..data], 0xf4
lea ebp, [0x43b6d4]
push dword [ebp + 0x20]
mov edx, str.READY
pop ecx
call fcn.00406360
jne 0x4020e2
mov dword [section..data], 0xf5
push str.Loader_failure_after_network_firmware_load.
push 2
call fcn.00403b26
mov dword [section..data], 0xf6
lea ebp, [0x43b6d4]
push dword [ebp + 0x20]
push 2
call fcn.00403b26
mov dword [section..data], 0xf7
mov edx, 0x4082ee
lea ecx, [0x43b6ac]
call fcn.00403008
mov dword [section..data], 0xf8
push dword [0x43b6ac]
call fcn.00403150
push eax
mov eax, dword [0x43b6ac]
push eax
push 0x43b6d4
call fcn.00402ac8
mov dword [0x43b6a4], eax
mov dword [section..data], 0xf9
push str.Done
push 1
call fcn.00403b26
mov dword [section..data], 0xfa
mov dword [section..data], 0xfb
call 0x4021ab
mov dword [section..data], 0xfc
jmp 0x4020bd
mov dword [section..data], 0xfd
mov dword [section..data], 0xfe
push str.Firmware_has_been_loaded.
push 3
call fcn.00403b26
mov dword [section..data], 0xff
push 0x4080ef
push 0
call fcn.00403b26
mov dword [section..data], 0x100
mov edx, 0x4082ee
lea ecx, [0x43b6ac]
call fcn.00403008
mov dword [section..data], 0x101
push dword [0x43b6ac]
call fcn.00403150
push eax
mov eax, dword [0x43b6ac]
push eax
push 0x43b6d4
call fcn.00402ac8
mov dword [0x43b6a4], eax
mov dword [section..data], 0x103
push str.Done
push 1
call fcn.00403b26
mov dword [section..data], 0x104
mov dword [section..data], 0x105
call 0x4021ab
mov dword [section..data], 0x106
jmp 0x40217c
mov dword [section..data], 0x107
mov dword [section..data], 0x10c
call fcn.00404443
mov dword [0x43b6d0], eax
mov dword [section..data], 0x10d
mov ebx, dword [0x43b6d0]
cmp ebx, 0x332c
jne 0x4022d1
mov dword [section..data], 0x10e
call fcn.0040444b
mov ebx, eax
and ebx, ebx
jne 0x40229d
mov dword [section..data], 0x10f
mov ebx, dword [0x43b694]
cmp ebx, 2
jne 0x402229
mov dword [section..data], 0x110
mov dword [0x43b694], 3
mov dword [section..data], 0x111
jmp 0x402287
mov dword [section..data], 0x111
mov ebx, dword [0x43b694]
cmp ebx, 4
jne 0x40225e
mov dword [section..data], 0x112
mov dword [0x43b694], 5
mov dword [section..data], 0x113
jmp 0x402287
mov dword [section..data], 0x113
mov ebx, dword [0x43b694]
cmp ebx, 0x14
jne 0x402287
mov dword [section..data], 0x114
mov dword [0x43b694], 0
mov dword [section..data], 0x115
mov dword [section..data], 0x116
jmp 0x4022c7
mov dword [section..data], 0x116
call fcn.0040444b
mov ebx, eax
cmp ebx, 1
jne 0x4022c7
mov dword [section..data], 0x117
mov dword [0x43b6d0], 0x10
mov dword [section..data], 0x118
mov dword [section..data], 0x119
mov dword [section..data], 0x11c
mov ebx, dword [0x43b6d0]
cmp ebx, 0x10
jne 0x402310
mov dword [section..data], 0x11d
push 0x43b6d4
call fcn.00402563
mov dword [section..data], 0x11e
jmp 0x402325
mov dword [section..data], 0x11f
mov dword [section..data], 0x120
ret
push 0
call 0x40233f
push dword [0x43b688]
call sub.KERNEL32.dll_HeapDestroy
call sub.KERNEL32.dll_ExitProcess
call fcn.004036e0
call fcn.00403750
call fcn.00403879
call fcn.00403ee1
call fcn.00405374
call fcn.004059c1
ret