Function at 0x42f248
Capabilities:
Check for time delay via gettickcount
Check os version
Create thread
Get common file path
Get disk information
Get disk size
Get hostname
Log keystrokes via polling
Query environment variable
Write file on windows

Disassembly:
push ebp
lea ebp, [esp - 0x384]
sub esp, 0x404
mov eax, dword [0x4705d0]
xor eax, ebp
mov dword [ebp + 0x380], eax
push ebx
push esi
push edi
xor ebx, ebx
xor eax, eax
mov dword [ebp - 0x34], ebx
lea edi, [ebp - 0x30]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov esi, 0x103
push esi
stosd dword es:[edi], eax
lea eax, [ebp + 0x27d]
push ebx
push eax
mov byte [ebp + 0x27c], bl
call fcn.004464f0
push esi
lea eax, [ebp + 0x139]
push ebx
push eax
mov byte [ebp + 0x138], bl
call fcn.004464f0
push 0x3f
lea eax, [ebp + 0x23d]
push ebx
push eax
mov byte [ebp + 0x23c], bl
call fcn.004464f0
push 7
xor eax, eax
pop ecx
lea edi, [ebp - 0x5c]
rep stosd dword es:[edi], eax
mov dword [ebp - 0x80], ebx
lea edi, [ebp - 0x7c]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
push 0x90
stosd dword es:[edi], eax
lea eax, [ebp + 0xa8]
push ebx
push eax
mov dword [ebp - 0xc], ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 8], ebx
mov dword [ebp - 0x64], ebx
mov dword [ebp - 0x40], ebx
mov dword [ebp], ebx
mov dword [ebp + 4], ebx
mov dword [ebp + 0xa4], ebx
call fcn.004464f0
mov esi, dword [ebp + 0x38c]
xor eax, eax
mov dword [ebp - 0x3c], ebx
lea edi, [ebp - 0x38]
stosd dword es:[edi], eax
mov dword [ebp - 0x24], ebx
lea edi, [ebp - 0x20]
stosd dword es:[edi], eax
mov dword [ebp - 0x6c], ebx
lea edi, [ebp - 0x68]
stosd dword es:[edi], eax
mov dword [ebp - 0x18], ebx
lea edi, [ebp - 0x14]
stosd dword es:[edi], eax
mov edi, dword [ebp + 0x390]
imul edi, edi, 0xf54
lea esi, [esi*4 + 0x473bec]
mov eax, dword [esi]
add eax, edi
push str.Record
push eax
call fcn.004010ff
add esp, 0x38
test eax, eax
mov eax, dword [esi]
je 0x42f503
mov eax, dword [edi + eax + 0x50]
cmp byte [eax], bl
jne 0x42f359
xor eax, eax
inc eax
jmp 0x430fe8
mov eax, dword [0x476024]
cmp eax, ebx
je 0x42f36f
push eax
call fcn.00445e06
pop ecx
mov dword [0x476024], ebx
mov eax, dword [esi]
push dword [edi + eax + 0x50]
call dword [sym.imp.KERNEL32.dll_lstrlenA]
cdq
push 0x19
pop ecx
idiv ecx
mov ecx, 0x1000
imul eax, eax, 0x28
add eax, ecx
mov dword [ebp - 0xc], eax
cmp eax, ecx
ja 0x42f394
mov eax, ecx
push 1
push eax
call fcn.004462a8
pop ecx
pop ecx
mov dword [0x476024], eax
cmp eax, ebx
jne 0x42f3ae
xor eax, eax
jmp 0x430fe8
push dword [ebp - 0xc]
push eax
mov eax, dword [esi]
push dword [edi + eax + 0x50]
call fcn.0041ff2d
cmp eax, 1
jae 0x42f3ef
mov eax, dword [0x473bbc]
cmp eax, ebx
je 0x42f3d7
push str.Invalid_Recording
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov eax, dword [0x476024]
cmp eax, ebx
je 0x42f3a7
push eax
call fcn.00445e06
pop ecx
mov dword [0x476024], ebx
jmp 0x42f3a7
push 0x13
mov dword [0x476028], ebx
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
mov eax, dword [esi]
lea eax, [edi + eax + 0x58]
push str.Hardware
push eax
mov dword [0x476030], ebx
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x42f446
push str._____using__Hardware__recording_method_
call fcn.0042036e
pop ecx
push ebx
push 0x19
push 0x8070
push dword [0x472420]
call dword [sym.imp.USER32.dll_SetTimer]
neg eax
sbb eax, eax
neg eax
mov dword [0x476020], eax
jmp 0x42f465
push str._____using__Software__recording_method_
call fcn.0042036e
pop ecx
push ebx
push 0xa
push 0x8068
push dword [0x472420]
call dword [sym.imp.USER32.dll_SetTimer]
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call edi
mov esi, dword [sym.imp.KERNEL32.dll_Sleep]
mov dword [ebp - 0x10], eax
cmp dword [0x476020], ebx
jne 0x42f4d2
call edi
sub eax, dword [ebp - 0x10]
cmp eax, 0x1f4
jae 0x42f496
push 1
call esi
cmp dword [0x476020], ebx
je 0x42f47e
cmp dword [0x476020], ebx
jne 0x42f4d2
mov eax, dword [0x476024]
cmp eax, ebx
je 0x42f4b4
push eax
call fcn.00445e06
pop ecx
mov dword [0x476024], ebx
mov eax, dword [0x473bbc]
cmp eax, ebx
je 0x42f3a7
push str.Unable_to_play_recording
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
jmp 0x42f3a7
push ebx
call esi
push 0xc8
call esi
cmp dword [0x476020], ebx
jne 0x42f4d2
mov eax, dword [0x476024]
cmp eax, ebx
je 0x42f351
push eax
call fcn.00445e06
pop ecx
mov dword [0x476024], ebx
jmp 0x42f351
add eax, edi
push 0x46020c
push eax
call fcn.004010ff
pop ecx
test eax, eax
mov eax, dword [esi]
pop ecx
je 0x42f8d8
lea eax, [edi + eax + 0x58]
push str.Architecture
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x42f547
push 0x102
lea eax, [ebp + 0x27c]
push eax
push str.PROCESSOR_ARCHITECTURE
jmp 0x42f6a2
mov eax, dword [esi]
lea eax, [edi + eax + 0x58]
push str.Description
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x42f5c1
lea eax, [ebp + 0x27c]
push eax
push str.ProcessorNameString
push str.HARDWAREDESCRIPTIONSystemCentralProcessor0
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.0041e8e4
add esp, 0x10
push 0x102
lea eax, [ebp + 0x138]
push eax
push str.PROCESSOR_IDENTIFIER
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
mov esi, dword [sym.imp.KERNEL32.dll_lstrcatA]
cmp byte [ebp + 0x27c], bl
je 0x42f5af
push 0x45984c
lea eax, [ebp + 0x27c]
push eax
call esi
lea eax, [ebp + 0x138]
push eax
lea eax, [ebp + 0x27c]
jmp 0x42f845
mov eax, dword [esi]
lea eax, [edi + eax + 0x58]
push str.Extended_Model
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x42f5e6
lea eax, [ebp + 0x27c]
push eax
push 5
jmp 0x42f86a
mov eax, dword [esi]
lea eax, [edi + eax + 0x58]
push str.Extended_Family
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x42f60b
lea eax, [ebp + 0x27c]
push eax
push 6
jmp 0x42f86a
mov eax, dword [esi]
lea eax, [edi + eax + 0x58]
push str.Stepping
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x42f630
lea eax, [ebp + 0x27c]
push eax
push 2
jmp 0x42f86a
mov eax, dword [esi]
lea eax, [edi + eax + 0x58]
push str.Model
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x42f655
lea eax, [ebp + 0x27c]
push eax
push 3
jmp 0x42f86a
mov eax, dword [esi]
lea eax, [edi + eax + 0x58]
push str.Family
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x42f67a
lea eax, [ebp + 0x27c]
push eax
push 4
jmp 0x42f86a
mov eax, dword [esi]
lea eax, [edi + eax + 0x58]
push str.Revision
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x42f6ad
push 0x102
lea eax, [ebp + 0x27c]
push eax
push str.PROCESSOR_REVISION
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
jmp 0x42f8ad
mov eax, dword [esi]
lea eax, [edi + eax + 0x58]
push str.Number_of_Processors
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x42f6e4
call fcn.0041eb40
push eax
push 0x45aac0
lea eax, [ebp + 0x27c]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
jmp 0x42f8ad
mov eax, dword [esi]
mov ebx, str.Speed
lea eax, [edi + eax + 0x58]
push ebx
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x42f7a5
mov eax, dword [esi]
lea eax, [edi + eax + 0x58]
push str.Test
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x42f7a5
call fcn.0043f3c6
fld qword [0x45b040]
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x42f746
fstp st(0)
call fcn.0043f490
mov dword [ebp + 4], eax
fild dword [ebp + 4]
test eax, eax
jge 0x42f746
fadd qword [0x45b530]
fdiv qword [0x45ec20]
push 0xf
push 7
push ecx
push ecx
fstp qword [esp]
call fcn.00414b2d
pop ecx
lea eax, [ebp + 0x27c]
fstp qword [esp]
push eax
call fcn.00416b8a
mov edi, dword [sym.imp.KERNEL32.dll_lstrlenA]
add esp, 0x10
lea eax, [ebp + 0x27c]
push eax
call edi
mov esi, dword [sym.imp.KERNEL32.dll_lstrcatA]
jmp 0x42f795
push 0x45b754
push eax
call esi
lea eax, [ebp + 0x27c]
push eax
call edi
cmp eax, 4
lea eax, [ebp + 0x27c]
jl 0x42f784
jmp 0x42f840
mov eax, dword [esi]
lea eax, [edi + eax + 0x58]
push ebx
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x42f84a
push str.MHz
push str.HARDWAREDESCRIPTIONSystemCentralProcessor0
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.00401241
add esp, 0xc
push 0xf
mov dword [ebp + 4], eax
fild dword [ebp + 4]
mov dword [ebp - 0xc], eax
push 2
test eax, eax
jge 0x42f7ea
fadd qword [0x45b530]
fdiv qword [0x45ec20]
push ecx
push ecx
fstp qword [esp]
call fcn.00414b2d
pop ecx
lea eax, [ebp + 0x27c]
fstp qword [esp]
push eax
call fcn.00416b8a
mov edi, dword [sym.imp.KERNEL32.dll_lstrlenA]
add esp, 0x10
lea eax, [ebp + 0x27c]
push eax
call edi
mov esi, dword [sym.imp.KERNEL32.dll_lstrcatA]
jmp 0x42f835
push 0x45b754
push eax
call esi
lea eax, [ebp + 0x27c]
push eax
call edi
cmp eax, 4
lea eax, [ebp + 0x27c]
jl 0x42f824
push str._GHz
push eax
call esi
jmp 0x42f8ad
mov eax, dword [esi]
lea eax, [edi + eax + 0x58]
push str.Instructions
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x42f873
lea eax, [ebp + 0x27c]
push eax
push 1
call fcn.0043f53e
pop ecx
pop ecx
jmp 0x42f8ad
mov eax, dword [esi]
lea eax, [edi + eax + 0x58]
push str.Manufacturer
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x42f8ad
call fcn.0043f510
cmp eax, 2
lea eax, [ebp + 0x27c]
jne 0x42f8a1
push 0x4600d0
jmp 0x42f8a6
push str.Intel
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea eax, [ebp + 0x27c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push eax
lea eax, [ebp + 0x27c]
push eax
push dword [ebp + 0x390]
push dword [ebp + 0x38c]
call fcn.00423053
jmp 0x42f351
add eax, edi
push str.Memory
push eax
call fcn.004010ff
pop ecx
test eax, eax
mov eax, dword [esi]
pop ecx
je 0x42fad1
lea eax, [edi + eax + 0x58]
push 0x459858
push eax
mov byte [ebp + 0x27c], bl
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x42f952
push 1
push 4
call fcn.0043f1bf
mov dword [ebp - 0xc], eax
mov eax, dword [esi]
lea eax, [edi + eax + 0x58]
push str.Used
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x42f934
mov eax, dword [ebp - 0xc]
jmp 0x42f93a
push 0x64
pop eax
sub eax, dword [ebp - 0xc]
push eax
lea eax, [ebp + 0x27c]
push 0x45aabc
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
jmp 0x42f9b2
mov eax, dword [esi]
lea eax, [edi + eax + 0x58]
push str.Total
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x42f96f
push 1
push 1
jmp 0x42f9a7
mov eax, dword [esi]
lea eax, [edi + eax + 0x58]
push str.Free
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x42f98c
push 1
push 2
jmp 0x42f9a7
mov eax, dword [esi]
lea eax, [edi + eax + 0x58]
push str.Used
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x42f9b2
push 1
push 3
call fcn.0043f1bf
mov dword [ebp], eax
mov dword [ebp + 4], edx
cmp byte [ebp + 0x27c], bl
jne 0x42f8ad
mov eax, dword [esi]
lea eax, [edi + eax + 0x58]
push 0x4600c4
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x42f9ee
mov eax, dword [ebp + 4]
mov ecx, dword [ebp]
shrd ecx, eax, 0xa
shr eax, 0xa
push eax
push ecx
push 0x45aabc
jmp 0x42fabc
mov eax, dword [esi]
lea eax, [edi + eax + 0x58]
push 0x45f2b8
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x42fa14
mov eax, dword [ebp + 4]
mov ecx, dword [ebp]
shrd ecx, eax, 0x14
shr eax, 0x14
jmp 0x42f9e2
mov eax, dword [esi]
lea eax, [edi + eax + 0x58]
push 0x4600c0
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x42fab1
fild qword [ebp]
push 0xf
push 2
push ecx
fmul qword [0x4600b8]
push ecx
fstp qword [ebp]
fld qword [ebp]
fstp qword [esp]
call fcn.00414b2d
pop ecx
lea eax, [ebp + 0x27c]
fstp qword [esp]
push eax
call fcn.00416b8a
lea eax, [ebp + 0x27c]
push 0x4600b0
push eax
call fcn.00445d80
add esp, 0x18
test eax, eax
je 0x42fa9e
fld qword [ebp]
push 0xf
fadd qword [0x4600a8]
push 2
push ecx
push ecx
fstp qword [esp]
call fcn.00414b2d
pop ecx
lea eax, [ebp + 0x27c]
fstp qword [esp]
push eax
call fcn.00416b8a
add esp, 0x10
lea eax, [ebp + 0x27c]
push 2
push eax
call fcn.0041497f
jmp 0x42f86f
push dword [ebp + 4]
push dword [ebp]
push str._I64u
lea eax, [ebp + 0x27c]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
jmp 0x42f8ad
add eax, edi
push 0x4600a0
push eax
call fcn.004010ff
pop ecx
test eax, eax
mov eax, dword [esi]
pop ecx
je 0x42fce5
lea eax, [edi + eax + 0x58]
push str.Memory
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x42fbb1
call fcn.00411ade
mov dword [ebp - 0xc], eax
mov eax, dword [esi]
lea eax, [edi + eax + 0x58]
push 0x45f2b8
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x42fba9
mov eax, dword [ebp - 0xc]
xor edx, edx
mov ecx, 0x3fb
mov esi, ecx
div esi
xor edx, edx
div ecx
mov dword [ebp - 8], eax
add eax, 0xffffffca
cmp eax, 0x14
ja 0x42fb4c
mov dword [ebp - 8], 0x40
jmp 0x42fb8f
mov eax, dword [ebp - 8]
fild dword [ebp - 8]
mov ecx, 0x80
mov dword [ebp - 4], ecx
test eax, eax
jge 0x42fb64
fadd qword [0x45b530]
fild dword [ebp - 4]
fld qword [0x460098]
fmul st(1)
fld st(1)
fsub st(1)
fcomp st(3)
fnstsw ax
test ah, 0x41
jp 0x42fb97
faddp st(1)
fcomp st(1)
fnstsw ax
test ah, 1
jne 0x42fb9b
mov eax, dword [ebp - 4]
mov dword [ebp - 8], eax
fstp st(0)
push dword [ebp - 8]
jmp 0x42fc5b
fstp st(1)
fstp st(0)
add dword [ebp - 4], ecx
cmp dword [ebp - 4], 0x2000
jl 0x42fb64
jmp 0x42fb8d
push dword [ebp - 0xc]
jmp 0x42fc5b
mov eax, dword [esi]
lea eax, [edi + eax + 0x58]
push str.Frequency
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x42fbd3
call fcn.00411bbb
push eax
jmp 0x42fc5b
mov eax, dword [esi]
lea eax, [edi + eax + 0x58]
push str.Color_Depth
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x42fc05
push 0xc
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_GetDeviceCaps]
jmp 0x42f6c9
mov eax, dword [esi]
lea eax, [edi + eax + 0x58]
push str.Maximum_Colors
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x42fc65
mov esi, dword [sym.imp.USER32.dll_GetDesktopWindow]
push 0xc
call esi
mov edi, dword [sym.imp.USER32.dll_GetDC]
push eax
call edi
mov ebx, dword [sym.imp.GDI32.dll_GetDeviceCaps]
push eax
call ebx
cmp eax, 0x18
jle 0x42fc42
push 0x18
pop eax
jmp 0x42fc4c
push 0xc
call esi
push eax
call edi
push eax
call ebx
cmp eax, 1
push 2
pop ecx
jle 0x42fc5a
dec eax
add ecx, ecx
dec eax
jne 0x42fc55
push ecx
push 0x45aabc
jmp 0x42f6cf
mov eax, dword [esi]
lea eax, [edi + eax + 0x58]
push str.Monitors
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x42fc89
push 0x50
call dword [sym.imp.USER32.dll_GetSystemMetrics]
jmp 0x42f6c9
mov eax, dword [esi]
lea eax, [edi + eax + 0x58]
push str.Resolution
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x42f8ad
mov eax, dword [esi]
lea eax, [edi + eax + 0x58]
push 0x32
push eax
call fcn.00445cc0
pop ecx
pop ecx
test eax, eax
je 0x42fccc
push 2
push 1
call fcn.0043e627
push eax
push 2
push ebx
call fcn.0043e627
jmp 0x42fcda
mov esi, dword [sym.imp.USER32.dll_GetSystemMetrics]
push 1
call esi
push eax
push ebx
call esi
push eax
push str._d_x__d
jmp 0x42fabc
add eax, edi
push str.Storage
push eax
call fcn.004010ff
pop ecx
test eax, eax
mov eax, dword [esi]
pop ecx
je 0x430093
push ebx
push ebx
push dword [ebp + 0x390]
lea eax, [edi + eax + 0x364]
push dword [ebp + 0x38c]
push eax
call fcn.00439ea7
mov eax, dword [esi]
lea eax, [edi + eax + 0x58]
push str.List
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
jne 0x42ff94
mov eax, dword [0x4775e4]
cmp eax, ebx
je 0x42ff94
cmp byte [eax], bl
jne 0x42fd4a
mov eax, 0x460058
lea ecx, [ebp - 0x6c]
push ecx
lea ecx, [ebp - 0x24]
push ecx
lea ecx, [ebp - 0x3c]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExA]
mov eax, dword [esi]
lea eax, [edi + eax + 0x58]
push str.Total
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
jne 0x42fdb3
mov eax, dword [esi]
lea eax, [edi + eax + 0x58]
push str.Free
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x42fd90
lea eax, [ebp - 0x3c]
jmp 0x42fdb6
mov eax, dword [esi]
lea eax, [edi + eax + 0x58]
push str.Used
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x42fdc5
mov eax, dword [ebp - 0x3c]
sub dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x38]
sbb dword [ebp - 0x20], eax
lea eax, [ebp - 0x24]
push 8
push eax
lea eax, [ebp - 0x18]
push eax
call fcn.00445ea0
add esp, 0xc
mov eax, dword [esi]
lea eax, [edi + eax + 0x58]
push 0x4600c4
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x42fdeb
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x14]
shrd eax, ecx, 0xa
shr ecx, 0xa
jmp 0x42fe3a
mov eax, dword [esi]
lea eax, [edi + eax + 0x58]
push str.SI_Megabyte
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x42fe16
push ebx
push 0xf4240
push dword [ebp - 0x14]
push dword [ebp - 0x18]
call fcn.00449a80
push edx
jmp 0x42fe3b
mov eax, dword [esi]
lea eax, [edi + eax + 0x58]
push 0x45f2b8
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x42fe41
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x14]
shrd eax, ecx, 0x14
shr ecx, 0x14
push ecx
push eax
jmp 0x42f9e4
mov eax, dword [esi]
lea eax, [edi + eax + 0x58]
push str.SI_Gigabyte
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x42fe82
push 0xf
push 2
push ebx
push 0xa
push dword [ebp - 0x14]
push dword [ebp - 0x18]
call fcn.00448a20
push ebx
push 0x3b9aca00
push edx
push eax
call fcn.004499d0
mov dword [ebp], eax
mov dword [ebp + 4], edx
fild qword [ebp]
jmp 0x42fec1
mov eax, dword [esi]
lea eax, [edi + eax + 0x58]
push 0x4600c0
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x42fed7
push 0xf
push 2
push ebx
push 0xa
push dword [ebp - 0x14]
push dword [ebp - 0x18]
call fcn.00448a20
push ebx
push 0x40000000
push edx
push eax
call fcn.004499d0
mov dword [ebp], eax
mov dword [ebp + 4], edx
fild qword [ebp]
fdiv qword [0x45cb70]
push ecx
push ecx
fstp qword [esp]
call fcn.00414b2d
pop ecx
jmp 0x42ff65
mov eax, dword [esi]
lea eax, [edi + eax + 0x58]
push str.SI_Terabyte
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x42ff1d
push 0xf
push ebx
push 0x3e8
push dword [ebp - 0x14]
push dword [ebp - 0x18]
call fcn.00448a20
push 0xe8
push 0xd4a51000
push edx
push eax
call fcn.004499d0
mov dword [ebp], eax
mov dword [ebp + 4], edx
fild qword [ebp]
jmp 0x42ff5d
mov eax, dword [esi]
lea eax, [edi + eax + 0x58]
push 0x460030
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x42ff89
push 0xf
push ebx
push 0x3e8
push dword [ebp - 0x14]
push dword [ebp - 0x18]
call fcn.00448a20
push 0x100
push ebx
push edx
push eax
call fcn.004499d0
mov dword [ebp], eax
mov dword [ebp + 4], edx
fild qword [ebp]
fdiv qword [0x45ec20]
push ecx
push ecx
lea eax, [ebp + 0x27c]
fstp qword [esp]
push eax
call fcn.00416b8a
lea eax, [ebp + 0x27c]
push ebx
push eax
call fcn.0041497f
add esp, 0x18
jmp 0x42f8ad
push dword [ebp - 0x14]
push dword [ebp - 0x18]
jmp 0x42fab7
call dword [sym.imp.KERNEL32.dll_GetLogicalDrives]
mov edi, dword [sym.imp.KERNEL32.dll_lstrcatA]
mov dword [ebp - 0xc], eax
xor esi, esi
xor eax, eax
inc eax
cmp esi, ebx
je 0x42ffb0
mov ecx, esi
shl eax, cl
mov ecx, dword [ebp - 0xc]
test ecx, eax
je 0x430084
lea eax, [esi + 0x41]
push eax
lea eax, [ebp + 0x138]
push str._C:_
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
push 1
call dword [sym.imp.KERNEL32.dll_SetErrorMode]
push ebx
push ebx
push ebx
push ebx
push ebx
push 0x3f
lea eax, [ebp + 0x23c]
push eax
lea eax, [ebp + 0x138]
push eax
mov byte [ebp + 0x23c], bl
call dword [sym.imp.KERNEL32.dll_GetVolumeInformationA]
cmp byte [ebp + 0x23c], bl
jne 0x430029
lea eax, [ebp + 0x138]
push eax
call dword [sym.imp.KERNEL32.dll_GetDriveTypeA]
cmp eax, 5
jne 0x430029
push str.CD_ROM
lea eax, [ebp + 0x23c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea eax, [ebp + 0x138]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
lea ecx, [ebp + 0x138]
dec ecx
mov byte [eax + ecx], bl
lea eax, [ebp + 0x138]
push eax
lea eax, [ebp + 0x27c]
push eax
call edi
cmp byte [ebp + 0x23c], bl
je 0x430076
push 0x45cf50
lea eax, [ebp + 0x27c]
push eax
call edi
lea eax, [ebp + 0x23c]
push eax
lea eax, [ebp + 0x27c]
push eax
call edi
push 0x45b4c0
lea eax, [ebp + 0x27c]
push eax
call edi
inc esi
cmp esi, 0x1a
jl 0x42ffa5
jmp 0x42f8ad
add eax, edi
push str.Operating_System
push eax
call fcn.004010ff
pop ecx
test eax, eax
mov eax, dword [esi]
pop ecx
je 0x4303ed
lea eax, [edi + eax + 0x58]
push str.Computer_Name
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x4300de
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp + 0x27c]
push eax
mov dword [ebp - 0xc], 0x103
call dword [sym.imp.KERNEL32.dll_GetComputerNameA]
jmp 0x42f8ad
mov eax, dword [esi]
lea eax, [edi + eax + 0x58]
push str.Description
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x4301d7
mov esi, dword [sym.imp.KERNEL32.dll_GetVersion]
call esi
cmp al, 5
jne 0x430118
call esi
shr eax, 8
cmp al, 1
jne 0x430118
mov eax, str.Windows_XP
jmp 0x4301cb
call fcn.00413c82
test eax, eax
je 0x43012b
mov eax, str.Windows_Server_2008
jmp 0x4301cb
call esi
cmp al, 6
jne 0x430144
call esi
shr eax, 8
test al, al
jne 0x430144
mov eax, str.Windows_Vista
jmp 0x4301cb
call esi
cmp al, 6
jne 0x43015a
call esi
shr eax, 8
cmp al, 1
jne 0x43015a
mov eax, str.Windows_7
jmp 0x4301cb
call esi
cmp al, 5
jne 0x430170
call esi
shr eax, 8
cmp al, 2
jne 0x430170
mov eax, str.Windows_2003
jmp 0x4301cb
call esi
cmp al, 5
jne 0x430186
call esi
shr eax, 8
test al, al
jne 0x430186
mov eax, str.Windows_2000
jmp 0x4301cb
call esi
cmp al, 4
jne 0x43019c
call esi
shr eax, 8
cmp al, 0x5a
jne 0x43019c
mov eax, str.Windows_ME
jmp 0x4301cb
call esi
cmp al, 4
jne 0x4301b2
call esi
shr eax, 8
cmp al, 0xa
jne 0x4301b2
mov eax, str.Windows_98
jmp 0x4301cb
call esi
cmp al, 4
jne 0x4301c6
call esi
shr eax, 8
test al, al
mov eax, str.Windows_NT
je 0x4301cb
mov eax, str.Unknown
push eax
lea eax, [ebp + 0x27c]
jmp 0x42f8a6
mov eax, dword [esi]
lea eax, [edi + eax + 0x58]
push str.Major_Version
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x4301fc
call dword [sym.imp.KERNEL32.dll_GetVersion]
movzx eax, al
jmp 0x42f6c9
mov eax, dword [esi]
lea eax, [edi + eax + 0x58]
push str.Minor_Version
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x43021e
call dword [sym.imp.KERNEL32.dll_GetVersion]
shr eax, 8
jmp 0x4301f4
mov eax, dword [esi]
lea eax, [edi + eax + 0x58]
push str.Version
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x430254
mov esi, dword [sym.imp.KERNEL32.dll_GetVersion]
call esi
shr eax, 8
movzx eax, al
push eax
call esi
movzx eax, al
push eax
push str._d._d
jmp 0x42fabc
mov eax, dword [esi]
lea eax, [edi + eax + 0x58]
push str.Product_Type
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
jne 0x43037d
mov eax, dword [esi]
lea eax, [edi + eax + 0x58]
push str.Platform_ID
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
jne 0x43037d
mov eax, dword [esi]
lea eax, [edi + eax + 0x58]
push str.Suite_Mask
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
jne 0x43037d
mov eax, dword [esi]
lea eax, [edi + eax + 0x58]
push str.Build_Number
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x4302de
lea eax, [ebp + 0xa4]
push eax
mov dword [ebp + 0xa4], 0x94
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
push dword [ebp + 0xb0]
jmp 0x42fc5b
mov eax, dword [esi]
lea eax, [edi + eax + 0x58]
push str.Service_Pack
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x43034b
lea eax, [ebp + 0xa4]
push eax
mov dword [ebp + 0xa4], 0x94
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
mov esi, dword [sym.imp.KERNEL32.dll_lstrlenA]
lea eax, [ebp + 0xb8]
push eax
call esi
mov ecx, eax
inc ecx
mov eax, 0x103
cmp ecx, eax
jg 0x430331
lea eax, [ebp + 0xb8]
push eax
call esi
inc eax
push eax
lea eax, [ebp + 0xb8]
push eax
lea eax, [ebp + 0x27c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
jmp 0x42f8ad
mov eax, dword [esi]
lea eax, [edi + eax + 0x58]
push str.Install
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x42f8ad
push 0x104
lea eax, [ebp + 0x27c]
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
jmp 0x42f8ad
push 0x98
lea eax, [ebp + 0xc]
push ebx
push eax
call fcn.004464f0
add esp, 0xc
lea eax, [ebp + 8]
push eax
mov dword [ebp + 8], 0x9c
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
mov eax, dword [esi]
lea eax, [edi + eax + 0x58]
push str.Product_ID
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x4303bf
push dword [ebp + 0x18]
jmp 0x42fc5b
mov eax, dword [esi]
lea eax, [edi + eax + 0x58]
push str.Suite_Mask
push eax
call fcn.004010ff
pop ecx
test eax, eax
movzx eax, word [ebp + 0xa0]
pop ecx
jne 0x42fbcd
movzx eax, byte [ebp + 0xa2]
jmp 0x42fbcd
add eax, edi
push str.Change_Display_Settings
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
jne 0x430e5e
mov eax, dword [esi]
add eax, edi
push str.Video_Display_Mode
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
jne 0x430e5e
mov eax, dword [esi]
add eax, edi
push str.Sound
push eax
call fcn.004010ff
pop ecx
test eax, eax
mov eax, dword [esi]
pop ecx
je 0x4304d5
push ebx
push ebx
push dword [ebp + 0x390]
push dword [ebp + 0x38c]
push dword [edi + eax + 0x50]
call fcn.00439ea7
mov eax, dword [0x4775e4]
cmp eax, ebx
je 0x4304be
cmp byte [eax], bl
je 0x4304be
push eax
call fcn.0040bf89
test eax, eax
je 0x4304be
mov eax, dword [esi]
lea eax, [edi + eax + 0x58]
push str.Sync
push eax
mov dword [ebp - 0xc], 0x20002
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
jne 0x430488
or dword [ebp - 0xc], 1
push dword [ebp - 0xc]
lea eax, [ebp + 0x27c]
push dword [0x4775e4]
push str.PlaySound__lu__0___lu_
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
push ebx
push ebx
lea eax, [ebp + 0x27c]
push eax
push str.WINMM.DLL
call fcn.004205d6
jmp 0x430fe8
mov eax, dword [0x473bbc]
cmp eax, ebx
je 0x42f3a7
push str.Incorrect_media_file
jmp 0x42f4c6
add eax, edi
push str.Tone
push eax
call fcn.004010ff
pop ecx
test eax, eax
mov eax, dword [esi]
pop ecx
je 0x430608
push ebx
push ebx
push dword [ebp + 0x390]
lea eax, [edi + eax + 0x15c]
push dword [ebp + 0x38c]
push eax
call fcn.00439ea7
push dword [0x4775e4]
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ecx, eax
push 0x1f
inc ecx
pop eax
cmp ecx, eax
jg 0x43052c
push dword [0x4775e4]
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
push eax
push dword [0x4775e4]
lea eax, [ebp + 0x23c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
lea eax, [ebp + 0x23c]
push eax
call fcn.0040109c
cmp eax, 5
pop ecx
jge 0x430564
push str.1000
lea eax, [ebp + 0x23c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov eax, dword [esi]
push ebx
push ebx
push dword [ebp + 0x390]
push dword [ebp + 0x38c]
push dword [edi + eax + 0x50]
call fcn.00439ea7
mov esi, dword [0x4775e4]
push esi
call fcn.0040109c
cmp eax, 2
pop ecx
jge 0x4305b7
lea eax, [ebp + 0x23c]
push eax
call fcn.0040109c
cmp eax, ebx
pop ecx
jle 0x4305b7
cmp byte [ebp + 0x23c], bl
jne 0x4305ab
push 0x64
pop eax
push eax
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x42f351
push esi
call fcn.0040109c
cmp eax, 0x25
pop ecx
jl 0x4305f6
push esi
call fcn.0040109c
cmp eax, 0x7fff
pop ecx
jg 0x4305f6
cmp byte [ebp + 0x23c], bl
je 0x4305e8
lea eax, [ebp + 0x23c]
push eax
call fcn.0040109c
pop ecx
jmp 0x4305eb
push 0x64
pop eax
push eax
push esi
call fcn.0040109c
pop ecx
push eax
jmp 0x4305fd
push 0x64
push 0x172
call dword [sym.imp.KERNEL32.dll_Beep]
jmp 0x42f351
add eax, edi
push str.Screen_Saver
push eax
call fcn.004010ff
pop ecx
test eax, eax
mov eax, dword [esi]
pop ecx
je 0x4307a5
add eax, edi
push str.Enable
push eax
call fcn.004010ff
pop ecx
pop ecx
push str.HKEY_CURRENT_USERControl_PanelDesktopScreenSaveActive
push 2
test eax, eax
je 0x430730
push 0x45b024
push 1
push 2
call fcn.0044129f
push str.HKEY_CURRENT_USERControl_PanelDesktopSCRNSAVE.EXE.BAK
mov edi, 0x103
push edi
lea eax, [ebp + 0x27c]
push eax
push ebx
push 3
call fcn.0044129f
add esp, 0x28
lea eax, [ebp + 0x27c]
cmp byte [ebp + 0x27c], bl
je 0x430686
push str.HKEY_CURRENT_USERControl_PanelDesktopSCRNSAVE.EXE
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
jmp 0x430703
mov esi, str.HKEY_CURRENT_USERControl_PanelDesktopSCRNSAVE.EXE
push esi
push edi
push eax
push ebx
push 3
call fcn.0044129f
add esp, 0x14
cmp byte [ebp + 0x27c], bl
jne 0x430718
push edi
lea eax, [ebp + 0x138]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
mov edi, dword [sym.imp.KERNEL32.dll_lstrlenA]
lea eax, [ebp + 0x138]
push eax
call edi
lea ecx, [ebp + 0x138]
dec ecx
cmp byte [eax + ecx], 0x5c
je 0x4306dd
push 0x45a954
lea eax, [ebp + 0x138]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea eax, [ebp + 0x138]
push eax
lea eax, [ebp + 0x27c]
push str._slogon.scr
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
push esi
lea eax, [ebp + 0x27c]
push eax
call edi
inc eax
push eax
lea eax, [ebp + 0x27c]
push eax
push 1
push 2
call fcn.0044129f
add esp, 0x14
push str.HKEY_CURRENT_USERControl_PanelDesktopSCRNSAVE.EXE.BAK
push ebx
push ebx
push ebx
push 4
call fcn.0044129f
add esp, 0x14
push ebx
push ebx
push 1
jmp 0x430798
push 0x45b754
push 1
push 2
call fcn.0044129f
mov esi, str.HKEY_CURRENT_USERControl_PanelDesktopSCRNSAVE.EXE
push esi
push 0x103
lea eax, [ebp + 0x27c]
push eax
push ebx
push 3
call fcn.0044129f
add esp, 0x28
cmp byte [ebp + 0x27c], bl
je 0x430795
push str.HKEY_CURRENT_USERControl_PanelDesktopSCRNSAVE.EXE.BAK
lea eax, [ebp + 0x27c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
push eax
lea eax, [ebp + 0x27c]
push eax
push 1
push 2
call fcn.0044129f
push esi
push ebx
push ebx
push ebx
push 4
call fcn.0044129f
add esp, 0x28
push ebx
push ebx
push ebx
push 0x11
call dword [sym.imp.USER32.dll_SystemParametersInfoA]
jmp 0x42f351
add eax, edi
push str.Serial
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x42f351
mov eax, dword [esi]
push ebx
push ebx
push dword [ebp + 0x390]
lea eax, [edi + eax + 0x364]
push dword [ebp + 0x38c]
push eax
call fcn.00439ea7
push dword [0x4775e4]
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
cmp eax, 0x103
jle 0x4307f4
mov eax, 0x103
jmp 0x430801
push dword [0x4775e4]
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
push eax
push dword [0x4775e4]
lea eax, [ebp + 0x27c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
lea eax, [ebp + 0x27c]
dec eax
mov dword [ebp - 0x10], eax
lea eax, [ebp + 0x27c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ecx, dword [ebp - 0x10]
cmp byte [eax + ecx], 0x3a
jne 0x430848
lea eax, [ebp + 0x27c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ecx, dword [ebp - 0x10]
mov byte [eax + ecx], bl
mov eax, dword [esi]
push ebx
push ebx
push dword [ebp + 0x390]
lea eax, [edi + eax + 0x468]
push dword [ebp + 0x38c]
push eax
call fcn.00439ea7
push dword [0x4775e4]
call fcn.0040109c
pop ecx
push ebx
push ebx
push dword [ebp + 0x390]
mov dword [ebp - 0x5c], eax
mov eax, dword [esi]
push dword [ebp + 0x38c]
lea eax, [edi + eax + 0x56c]
push eax
call fcn.00439ea7
push dword [0x4775e4]
call fcn.0040109c
pop ecx
push ebx
push ebx
push dword [ebp + 0x390]
mov dword [ebp - 0x58], eax
mov eax, dword [esi]
push dword [ebp + 0x38c]
lea eax, [edi + eax + 0x670]
push eax
call fcn.00439ea7
push str.Even
push dword [0x4775e4]
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0x4308e3
push 0x45fe90
push dword [0x4775e4]
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
mov eax, dword [esi]
push ebx
push ebx
push dword [ebp + 0x390]
lea eax, [edi + eax + 0x774]
push dword [ebp + 0x38c]
push eax
call fcn.00439ea7
push dword [0x4775e4]
call fcn.0040109c
pop ecx
push ebx
push ebx
push dword [ebp + 0x390]
mov dword [ebp - 0x50], eax
mov eax, dword [esi]
push dword [ebp + 0x38c]
lea eax, [edi + eax + 0x878]
push eax
call fcn.00439ea7
push 0x45fe8c
push dword [0x4775e4]
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
neg eax
sbb eax, eax
and eax, 0xfffffffe
inc eax
inc eax
mov dword [ebp - 0x54], eax
mov eax, dword [esi]
add eax, edi
lea ecx, [eax + 0x878]
push ecx
push dword [ebp - 0x50]
add eax, 0x670
push eax
push dword [ebp - 0x58]
lea eax, [ebp + 0x27c]
push dword [ebp - 0x5c]
push eax
push str.____Opening_Serial_Port_on__s...___d___d___s___d___s
call fcn.0042036e
mov eax, dword [esi]
add eax, edi
push str.RECEIVE
push eax
call fcn.004010ff
add esp, 0x24
push dword [0x473bbc]
test eax, eax
push dword [ebp - 0x4c]
lea eax, [ebp + 0x27c]
push dword [ebp - 0x50]
push dword [ebp - 0x54]
push dword [ebp - 0x58]
push dword [ebp - 0x5c]
push eax
je 0x430be3
push 2
call fcn.0041f589
mov dword [0x476360], eax
cmp eax, ebx
je 0x42f3a7
push 0x14
lea eax, [ebp - 0x80]
push ebx
push eax
call fcn.004464f0
add esp, 0xc
push ebx
push ebx
push 1
push ebx
call dword [sym.imp.KERNEL32.dll_CreateEventA]
mov dword [ebp - 0x70], eax
cmp eax, ebx
jne 0x430a0c
mov eax, dword [0x476360]
cmp eax, ebx
je 0x4309ef
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [0x473bbc]
mov dword [0x476360], ebx
cmp eax, ebx
je 0x42f3a7
push str.CreateEvent_failed
jmp 0x42f4c6
push 1
push dword [0x476360]
call dword [sym.imp.KERNEL32.dll_SetCommMask]
test eax, eax
jne 0x430a4b
mov eax, dword [0x476360]
cmp eax, ebx
je 0x430a2e
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [0x473bbc]
mov dword [0x476360], ebx
cmp eax, ebx
je 0x42f3a7
push str.SetCommMask_failed
jmp 0x42f4c6
mov eax, dword [esi]
push ebx
push ebx
push dword [ebp + 0x390]
lea eax, [edi + eax + 0x15c]
push dword [ebp + 0x38c]
push eax
call fcn.00439ea7
push dword [0x4775e4]
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ecx, eax
push 0x1f
inc ecx
pop eax
cmp ecx, eax
jg 0x430a8b
push dword [0x4775e4]
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
push eax
push dword [0x4775e4]
lea eax, [ebp + 0x23c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
mov esi, dword [0x4775e4]
push esi
call fcn.0040109c
pop ecx
mov ecx, eax
imul ecx, ecx, 0x3e8
mov eax, 0x3e8
cmp ecx, eax
jl 0x430aca
push esi
call fcn.0040109c
imul eax, eax, 0x3e8
pop ecx
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x10], eax
xor edi, edi
mov dword [0x476368], ebx
call esi
push 1
push 0x2000000
mov dword [ebp + 4], eax
call fcn.004462a8
pop ecx
pop ecx
mov dword [ebp - 4], eax
cmp eax, ebx
je 0x42f3a7
lea eax, [ebp - 0x64]
push eax
push ebx
push dword [ebp - 4]
push 0x41f740
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateThread]
test eax, eax
jne 0x430b3d
mov eax, dword [0x476360]
cmp eax, ebx
je 0x430b22
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [0x473bbc]
mov dword [0x476360], ebx
cmp eax, ebx
je 0x430b9e
push str.Serial_Port_CreateThread_failed
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
cmp dword [0x476360], ebx
je 0x430b9e
push 0x3e8
push dword [ebp - 0x70]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x430b8e
cmp edi, ebx
jne 0x430b6e
cmp dword [0x476368], ebx
jbe 0x430b6e
push str.____Receiving_Serial_Transmission...
call fcn.0042036e
pop ecx
cmp dword [0x476368], edi
jne 0x430b80
call esi
sub eax, dword [ebp + 4]
cmp eax, dword [ebp - 0x10]
ja 0x430b8e
mov edi, dword [0x476368]
cmp dword [0x476360], ebx
jne 0x430b45
mov eax, dword [0x476360]
cmp eax, ebx
je 0x430b9e
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push dword [0x476368]
mov dword [0x476360], ebx
push dword [ebp - 4]
push dword [ebp + 0x390]
push dword [ebp + 0x38c]
call fcn.00423053
push dword [ebp - 4]
call fcn.00445e06
push dword [0x476368]
push str._____lu_Total_bytes_received_during_serial_transmission
call fcn.0042036e
mov eax, dword [0x476368]
add esp, 0xc
jmp 0x430fe8
push 1
call fcn.0041f589
mov dword [0x476360], eax
cmp eax, ebx
je 0x42f3a7
lea eax, [ebp - 8]
push eax
mov eax, dword [esi]
push ebx
push dword [ebp + 0x390]
mov dword [ebp - 8], ebx
push dword [ebp + 0x38c]
push dword [edi + eax + 0x50]
call fcn.00439ea7
cmp dword [ebp - 8], ebx
jne 0x430c2a
push dword [0x4775e4]
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov dword [ebp - 8], eax
push dword [0x4775e4]
call fcn.0040bf89
test eax, eax
je 0x430c7f
push dword [0x4775e4]
call fcn.0040d86d
lea ecx, [eax + 0x10000]
mov dword [ebp - 8], eax
mov eax, 0x1000
cmp ecx, eax
jbe 0x430c58
mov eax, ecx
push 1
push eax
call fcn.004462a8
pop ecx
pop ecx
mov dword [ebp - 4], eax
cmp eax, ebx
je 0x42f3a7
push dword [ebp - 8]
push eax
push ebx
push dword [0x4775e4]
call fcn.0040d6ea
jmp 0x430cc0
mov eax, dword [ebp - 8]
add eax, 0x10000
mov ecx, 0x1000
cmp eax, ecx
ja 0x430c92
mov eax, ecx
push 1
push eax
call fcn.004462a8
pop ecx
pop ecx
mov dword [ebp - 4], eax
cmp eax, ebx
je 0x430cc0
mov eax, dword [0x4775e4]
cmp eax, ebx
je 0x430cc0
cmp dword [ebp - 8], ebx
jbe 0x430cc0
push dword [ebp - 8]
push eax
push dword [ebp - 4]
call fcn.00445ea0
add esp, 0xc
mov eax, dword [ebp - 0x5c]
cdq
and edx, 7
add eax, edx
mov ecx, 0x200
sar eax, 3
xor edi, edi
cmp eax, ecx
mov dword [ebp + 4], ebx
mov dword [ebp - 0x10], ecx
jg 0x430ce0
mov dword [ebp - 0x10], eax
push dword [ebp - 8]
push str.____Transmitting__lu_bytes...
call fcn.0042036e
pop ecx
pop ecx
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x10]
sub eax, edi
mov dword [ebp - 0x1c], ecx
cmp ecx, eax
jb 0x430d01
mov dword [ebp - 0x1c], eax
push ebx
lea eax, [ebp - 0x1c]
push eax
push dword [ebp - 0x1c]
mov eax, dword [ebp - 4]
add eax, edi
push eax
push dword [0x476360]
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x430d8f
call dword [sym.imp.KERNEL32.dll_GetLastError]
push ebx
push 0xfe
mov esi, eax
lea eax, [ebp + 0x27c]
push eax
push 0x400
push esi
push ebx
push 0x1200
call dword [sym.imp.KERNEL32.dll_FormatMessageA]
cmp esi, 0x3e5
jne 0x430e28
push 0xffffffffffffffff
push dword [ebp - 0x70]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
jne 0x430d8f
push ebx
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x80]
push eax
push dword [0x476360]
call dword [sym.imp.KERNEL32.dll_GetOverlappedResult]
test eax, eax
jne 0x430d8f
mov eax, dword [0x473bbc]
cmp eax, ebx
je 0x430d8f
push str.GetOverlappedResult_failed
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
add edi, dword [ebp - 0x1c]
jne 0x430d9d
mov dword [ebp + 4], 1
jmp 0x430de0
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call esi
sub eax, dword [ebp - 0x40]
cmp eax, 0x1bc
jbe 0x430de0
mov ecx, dword [ebp - 8]
cmp ecx, 1
jae 0x430dba
xor ecx, ecx
inc ecx
mov eax, edi
imul eax, eax, 0x64
xor edx, edx
div ecx
push eax
push edi
push str.__lu_Bytes_Sent...__d__
push ebx
push 1
push dword [0x472434]
call fcn.0041f060
add esp, 0x18
call esi
mov dword [ebp - 0x40], eax
cmp dword [ebp - 8], edi
jbe 0x430dee
cmp dword [ebp + 4], ebx
je 0x430cef
push edi
push str.____Transmission_Complete:__lu_Total_Bytes
call fcn.0042036e
mov eax, dword [0x476360]
pop ecx
pop ecx
cmp eax, ebx
je 0x430e0b
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [0x476360], ebx
cmp dword [ebp - 4], ebx
je 0x42f351
push dword [ebp - 4]
call fcn.00445e06
pop ecx
jmp 0x42f351
mov eax, dword [0x476360]
cmp eax, ebx
je 0x430e38
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea eax, [ebp + 0x27c]
push eax
push str.WriteFile_communication_failure:__s
push dword [0x473bbc]
mov dword [0x476360], ebx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
jmp 0x42f3a7
mov dword [ebp - 4], ebx
push 1
push 0x1000
call fcn.004462a8
pop ecx
pop ecx
mov ecx, dword [ebp - 4]
inc dword [ebp - 4]
cmp dword [ebp - 4], 4
mov dword [ebp + ecx*4 - 0x34], eax
jl 0x430e61
mov eax, dword [esi]
push ebx
push ebx
push dword [ebp + 0x390]
push dword [ebp + 0x38c]
push dword [edi + eax + 0x50]
call fcn.00439ea7
push dword [0x4775e4]
lea eax, [ebp + 0x27c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push ebx
push ebx
push str.4_Bit
push str.16_Colors
lea eax, [ebp + 0x27c]
push eax
call fcn.0043fa75
push ebx
push ebx
push str.8_Bit
push str.256_Colors
lea eax, [ebp + 0x27c]
push eax
call fcn.0043fa75
push ebx
push ebx
push str.16_Bit
push str.High_Color__16_Bit_
lea eax, [ebp + 0x27c]
push eax
call fcn.0043fa75
push ebx
push ebx
push str.32_Bit
push str.True_Color__32_Bit_
lea eax, [ebp + 0x27c]
push eax
call fcn.0043fa75
push ebx
push 1
mov edi, 0x103
push edi
push dword [ebp - 0x34]
mov esi, 0x45fcfc
push ebx
push esi
lea eax, [ebp + 0x27c]
push eax
call fcn.004432d3
push ebx
push 1
push edi
push dword [ebp - 0x30]
lea eax, [ebp + 0x27c]
push 1
push esi
push eax
call fcn.004432d3
push ebx
mov esi, 0x45b890
push esi
push dword [ebp - 0x30]
call fcn.0043fbb2
push ebx
push 1
push edi
push dword [ebp - 0x2c]
lea eax, [ebp + 0x27c]
push 1
push esi
push eax
call fcn.004432d3
push ebx
push esi
push dword [ebp - 0x2c]
call fcn.0043fbb2
push ebx
push 1
push edi
push dword [ebp - 0x28]
push 2
push esi
lea eax, [ebp + 0x27c]
push eax
call fcn.004432d3
push dword [ebp - 0x28]
call fcn.0040109c
pop ecx
push eax
push dword [ebp - 0x2c]
call fcn.0040109c
pop ecx
push eax
push dword [ebp - 0x30]
call fcn.0040109c
pop ecx
push eax
push dword [ebp - 0x34]
call fcn.0040109c
pop ecx
push eax
push 3
call fcn.004123d8
cmp eax, 0xffffffff
jne 0x430fcf
push 0x12040
push str.System_Message
push str.The_computer_must_be_restarted_to_activate_the_change_in_the_video_display_mode.
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
xor esi, esi
mov eax, dword [ebp + esi*4 - 0x34]
cmp eax, ebx
je 0x430fe0
push eax
call fcn.00445e06
pop ecx
inc esi
cmp esi, 4
jl 0x430fd1
mov eax, esi
mov ecx, dword [ebp + 0x380]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004464bf
add ebp, 0x384
leave
ret 8