Function at 0x430a2f
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 - 0x38c]
sub esp, 0x40c
mov eax, dword [0x4755d0]
xor eax, ebp
mov dword [ebp + 0x388], eax
mov eax, dword [ebp + 0x398]
push ebx
push esi
mov esi, dword [ebp + 0x394]
push edi
mov dword [ebp + 8], eax
xor ebx, ebx
xor eax, eax
mov dword [ebp - 0x38], ebx
lea edi, [ebp - 0x34]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov edi, 0x103
push edi
lea eax, [ebp + 0x285]
push ebx
push eax
mov dword [ebp + 0xc], esi
mov byte [ebp + 0x284], bl
call fcn.00448090
push edi
lea eax, [ebp + 0x141]
push ebx
push eax
mov byte [ebp + 0x140], bl
call fcn.00448090
push 0x3f
lea eax, [ebp + 0x245]
push ebx
push eax
mov byte [ebp + 0x244], bl
call fcn.00448090
push 7
xor eax, eax
pop ecx
lea edi, [ebp - 0x54]
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 + 0xb0]
push ebx
push eax
mov dword [ebp], ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 4], ebx
mov dword [ebp - 0x64], ebx
mov dword [ebp - 8], ebx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x10], ebx
mov dword [ebp + 0xac], ebx
call fcn.00448090
xor eax, eax
mov dword [ebp - 0x60], ebx
lea edi, [ebp - 0x5c]
stosd dword es:[edi], eax
mov dword [ebp - 0x28], ebx
lea edi, [ebp - 0x24]
stosd dword es:[edi], eax
mov dword [ebp - 0x6c], ebx
lea edi, [ebp - 0x68]
stosd dword es:[edi], eax
mov dword [ebp - 0x1c], ebx
lea edi, [ebp - 0x18]
stosd dword es:[edi], eax
mov edi, dword [ebp + 8]
imul edi, edi, 0xf54
lea esi, [esi*4 + 0x478a70]
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 0x430cf3
mov eax, dword [edi + eax + 0x50]
cmp byte [eax], bl
jne 0x430b49
xor eax, eax
inc eax
jmp 0x4328d0
mov eax, dword [0x47aeac]
cmp eax, ebx
je 0x430b5f
push eax
call fcn.00447ab6
pop ecx
mov dword [0x47aeac], 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], eax
cmp eax, ecx
ja 0x430b84
mov eax, ecx
push 1
push eax
call fcn.00447e84
pop ecx
pop ecx
mov dword [0x47aeac], eax
cmp eax, ebx
jne 0x430b9e
xor eax, eax
jmp 0x4328d0
push dword [ebp]
push eax
mov eax, dword [esi]
push dword [edi + eax + 0x50]
call fcn.004216b8
cmp eax, 1
jae 0x430bdf
mov eax, dword [0x478a40]
cmp eax, ebx
je 0x430bc7
push str.Invalid_Recording
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov eax, dword [0x47aeac]
cmp eax, ebx
je 0x430b97
push eax
call fcn.00447ab6
pop ecx
mov dword [0x47aeac], ebx
jmp 0x430b97
push 0x13
mov dword [0x47aeb0], ebx
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
mov eax, dword [esi]
lea eax, [edi + eax + 0x58]
push str.Hardware
push eax
mov dword [0x47aeb8], ebx
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x430c36
push str._____using__Hardware__recording_method_
call fcn.00421b06
pop ecx
push ebx
push 0x19
push 0x8070
push dword [0x4771a0]
call dword [sym.imp.USER32.dll_SetTimer]
neg eax
sbb eax, eax
neg eax
mov dword [0x47aea8], eax
jmp 0x430c55
push str._____using__Software__recording_method_
call fcn.00421b06
pop ecx
push ebx
push 0xa
push 0x8068
push dword [0x4771a0]
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 [0x47aea8], ebx
jne 0x430cc2
call edi
sub eax, dword [ebp - 0x10]
cmp eax, 0x1f4
jae 0x430c86
push 1
call esi
cmp dword [0x47aea8], ebx
je 0x430c6e
cmp dword [0x47aea8], ebx
jne 0x430cc2
mov eax, dword [0x47aeac]
cmp eax, ebx
je 0x430ca4
push eax
call fcn.00447ab6
pop ecx
mov dword [0x47aeac], ebx
mov eax, dword [0x478a40]
cmp eax, ebx
je 0x430b97
push str.Unable_to_play_recording
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
jmp 0x430b97
push ebx
call esi
push 0xc8
call esi
cmp dword [0x47aea8], ebx
jne 0x430cc2
mov eax, dword [0x47aeac]
cmp eax, ebx
je 0x430b41
push eax
call fcn.00447ab6
pop ecx
mov dword [0x47aeac], ebx
jmp 0x430b41
add eax, edi
push 0x46373c
push eax
call fcn.004010ff
pop ecx
test eax, eax
mov eax, dword [esi]
pop ecx
je 0x4310c2
lea eax, [edi + eax + 0x58]
push str.Architecture
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x430d37
push 0x102
lea eax, [ebp + 0x284]
push eax
push str.PROCESSOR_ARCHITECTURE
jmp 0x430e92
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 0x430db1
lea eax, [ebp + 0x284]
push eax
push str.ProcessorNameString
push str.HARDWAREDESCRIPTIONSystemCentralProcessor0
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.00420158
add esp, 0x10
push 0x102
lea eax, [ebp + 0x140]
push eax
push str.PROCESSOR_IDENTIFIER
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
mov esi, dword [sym.imp.KERNEL32.dll_lstrcatA]
cmp byte [ebp + 0x284], bl
je 0x430d9f
push 0x45c850
lea eax, [ebp + 0x284]
push eax
call esi
lea eax, [ebp + 0x140]
push eax
lea eax, [ebp + 0x284]
jmp 0x431035
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 0x430dd6
lea eax, [ebp + 0x284]
push eax
push 5
jmp 0x43105a
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 0x430dfb
lea eax, [ebp + 0x284]
push eax
push 6
jmp 0x43105a
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 0x430e20
lea eax, [ebp + 0x284]
push eax
push 2
jmp 0x43105a
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 0x430e45
lea eax, [ebp + 0x284]
push eax
push 3
jmp 0x43105a
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 0x430e6a
lea eax, [ebp + 0x284]
push eax
push 4
jmp 0x43105a
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 0x430e9d
push 0x102
lea eax, [ebp + 0x284]
push eax
push str.PROCESSOR_REVISION
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
jmp 0x43109d
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 0x430ed4
call fcn.0042026f
push eax
push 0x45cb18
lea eax, [ebp + 0x284]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
jmp 0x43109d
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 0x430f95
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 0x430f95
call fcn.00440fee
fld qword [0x45e1a0]
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x430f36
fstp st(0)
call fcn.004410b8
mov dword [ebp - 8], eax
fild dword [ebp - 8]
test eax, eax
jns 0x430f36
fadd qword [0x45e690]
fdiv qword [0x462010]
push 0xf
push 7
push ecx
push ecx
fstp qword [esp]
call fcn.00415e5d
pop ecx
lea eax, [ebp + 0x284]
fstp qword [esp]
push eax
call fcn.00417eeb
mov edi, dword [sym.imp.KERNEL32.dll_lstrlenA]
add esp, 0x10
lea eax, [ebp + 0x284]
push eax
call edi
mov esi, dword [sym.imp.KERNEL32.dll_lstrcatA]
jmp 0x430f85
push 0x45e8b4
push eax
call esi
lea eax, [ebp + 0x284]
push eax
call edi
cmp eax, 4
lea eax, [ebp + 0x284]
jl 0x430f74
jmp 0x431030
mov eax, dword [esi]
lea eax, [edi + eax + 0x58]
push ebx
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x43103a
push str.MHz
push str.HARDWAREDESCRIPTIONSystemCentralProcessor0
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.004111de
add esp, 0xc
push 0xf
mov dword [ebp - 8], eax
fild dword [ebp - 8]
mov dword [ebp], eax
push 2
test eax, eax
jns 0x430fda
fadd qword [0x45e690]
fdiv qword [0x462010]
push ecx
push ecx
fstp qword [esp]
call fcn.00415e5d
pop ecx
lea eax, [ebp + 0x284]
fstp qword [esp]
push eax
call fcn.00417eeb
mov edi, dword [sym.imp.KERNEL32.dll_lstrlenA]
add esp, 0x10
lea eax, [ebp + 0x284]
push eax
call edi
mov esi, dword [sym.imp.KERNEL32.dll_lstrcatA]
jmp 0x431025
push 0x45e8b4
push eax
call esi
lea eax, [ebp + 0x284]
push eax
call edi
cmp eax, 4
lea eax, [ebp + 0x284]
jl 0x431014
push str._GHz
push eax
call esi
jmp 0x43109d
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 0x431063
lea eax, [ebp + 0x284]
push eax
push 1
call fcn.00441164
pop ecx
pop ecx
jmp 0x43109d
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 0x43109d
call fcn.00441136
cmp eax, 2
lea eax, [ebp + 0x284]
jne 0x431091
push 0x463600
jmp 0x431096
push str.Intel
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea eax, [ebp + 0x284]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push eax
lea eax, [ebp + 0x284]
push eax
push dword [ebp + 8]
push dword [ebp + 0xc]
call fcn.004245b3
jmp 0x430b41
add eax, edi
push str.Memory
push eax
call fcn.004010ff
pop ecx
test eax, eax
mov eax, dword [esi]
pop ecx
je 0x4312bb
lea eax, [edi + eax + 0x58]
push 0x45c85c
push eax
mov byte [ebp + 0x284], bl
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x43113c
push 1
push 4
call fcn.00440dc1
mov dword [ebp], 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 0x43111e
mov eax, dword [ebp]
jmp 0x431124
push 0x64
pop eax
sub eax, dword [ebp]
push eax
lea eax, [ebp + 0x284]
push 0x45cb14
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
jmp 0x43119c
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 0x431159
push 1
push 1
jmp 0x431191
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 0x431176
push 1
push 2
jmp 0x431191
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 0x43119c
push 1
push 3
call fcn.00440dc1
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], edx
cmp byte [ebp + 0x284], bl
jne 0x43109d
mov eax, dword [esi]
lea eax, [edi + eax + 0x58]
push 0x4635f4
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x4311d8
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x14]
shrd ecx, eax, 0xa
shr eax, 0xa
push eax
push ecx
push 0x45cb14
jmp 0x4312a6
mov eax, dword [esi]
lea eax, [edi + eax + 0x58]
push 0x4626a8
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x4311fe
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x14]
shrd ecx, eax, 0x14
shr eax, 0x14
jmp 0x4311cc
mov eax, dword [esi]
lea eax, [edi + eax + 0x58]
push 0x4635f0
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x43129b
fild qword [ebp - 0x14]
push 0xf
push 2
push ecx
fmul qword [0x4635e8]
push ecx
fstp qword [ebp - 0xc]
fld qword [ebp - 0xc]
fstp qword [esp]
call fcn.00415e5d
pop ecx
lea eax, [ebp + 0x284]
fstp qword [esp]
push eax
call fcn.00417eeb
lea eax, [ebp + 0x284]
push 0x4635e0
push eax
call fcn.00447a30
add esp, 0x18
test eax, eax
je 0x431288
fld qword [ebp - 0xc]
push 0xf
fadd qword [0x4635d8]
push 2
push ecx
push ecx
fstp qword [esp]
call fcn.00415e5d
pop ecx
lea eax, [ebp + 0x284]
fstp qword [esp]
push eax
call fcn.00417eeb
add esp, 0x10
lea eax, [ebp + 0x284]
push 2
push eax
call fcn.00415cb1
jmp 0x43105f
push dword [ebp - 0x10]
push dword [ebp - 0x14]
push str._I64u
lea eax, [ebp + 0x284]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
jmp 0x43109d
add eax, edi
push 0x4635d0
push eax
call fcn.004010ff
pop ecx
test eax, eax
mov eax, dword [esi]
pop ecx
je 0x4314cf
lea eax, [edi + eax + 0x58]
push str.Memory
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x43139b
call fcn.00412e46
mov dword [ebp], eax
mov eax, dword [esi]
lea eax, [edi + eax + 0x58]
push 0x4626a8
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x431393
mov eax, dword [ebp]
xor edx, edx
mov ecx, 0x3fb
mov esi, ecx
div esi
xor edx, edx
div ecx
mov dword [ebp - 4], eax
add eax, 0xffffffca
cmp eax, 0x14
ja 0x431336
mov dword [ebp - 4], 0x40
jmp 0x431379
mov eax, dword [ebp - 4]
fild dword [ebp - 4]
mov ecx, 0x80
mov dword [ebp + 4], ecx
test eax, eax
jns 0x43134e
fadd qword [0x45e690]
fild dword [ebp + 4]
fld qword [0x4635c8]
fmul st(1)
fld st(1)
fsub st(1)
fcomp st(3)
fnstsw ax
test ah, 0x41
jp 0x431381
faddp st(1)
fcomp st(1)
fnstsw ax
test ah, 1
jne 0x431385
mov eax, dword [ebp + 4]
mov dword [ebp - 4], eax
fstp st(0)
push dword [ebp - 4]
jmp 0x431445
fstp st(1)
fstp st(0)
add dword [ebp + 4], ecx
cmp dword [ebp + 4], 0x2000
jl 0x43134e
jmp 0x431377
push dword [ebp]
jmp 0x431445
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 0x4313bd
call fcn.00412f2f
push eax
jmp 0x431445
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 0x4313ef
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 0x430eb9
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 0x43144f
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 0x43142c
push 0x18
pop eax
jmp 0x431436
push 0xc
call esi
push eax
call edi
push eax
call ebx
push 2
pop ecx
cmp eax, 1
jle 0x431444
dec eax
add ecx, ecx
dec eax
jne 0x43143f
push ecx
push 0x45cb14
jmp 0x430ebf
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 0x431473
push 0x50
call dword [sym.imp.USER32.dll_GetSystemMetrics]
jmp 0x430eb9
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 0x43109d
mov eax, dword [esi]
lea eax, [edi + eax + 0x58]
push 0x32
push eax
call fcn.00447970
pop ecx
pop ecx
test eax, eax
je 0x4314b6
push 2
push 1
call fcn.00440179
push eax
push 2
push ebx
call fcn.00440179
jmp 0x4314c4
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 0x4312a6
add eax, edi
push str.Storage
push eax
call fcn.004010ff
pop ecx
test eax, eax
mov eax, dword [esi]
pop ecx
je 0x431871
push ebx
push ebx
push dword [ebp + 8]
lea eax, [edi + eax + 0x364]
push dword [ebp + 0xc]
push eax
call fcn.0043b804
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 0x431778
mov eax, dword [0x47c474]
cmp eax, ebx
je 0x431778
cmp byte [eax], bl
jne 0x43152e
mov eax, 0x463584
lea ecx, [ebp - 0x6c]
push ecx
lea ecx, [ebp - 0x28]
push ecx
lea ecx, [ebp - 0x60]
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 0x431597
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 0x431574
lea eax, [ebp - 0x60]
jmp 0x43159a
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 0x4315a9
mov eax, dword [ebp - 0x60]
sub dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x5c]
sbb dword [ebp - 0x24], eax
lea eax, [ebp - 0x28]
push 8
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.00447af0
add esp, 0xc
mov eax, dword [esi]
lea eax, [edi + eax + 0x58]
push 0x4635f4
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x4315cf
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x18]
shrd eax, ecx, 0xa
shr ecx, 0xa
jmp 0x43161e
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 0x4315fa
push ebx
push 0xf4240
push dword [ebp - 0x18]
push dword [ebp - 0x1c]
call fcn.0044b9f0
push edx
jmp 0x43161f
mov eax, dword [esi]
lea eax, [edi + eax + 0x58]
push 0x4626a8
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x431625
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x18]
shrd eax, ecx, 0x14
shr ecx, 0x14
push ecx
push eax
jmp 0x4311ce
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 0x431666
push 0xf
push 2
push ebx
push 0xa
push dword [ebp - 0x18]
push dword [ebp - 0x1c]
call fcn.0044a5e0
push ebx
push 0x3b9aca00
push edx
push eax
call fcn.0044b690
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], edx
fild qword [ebp - 0xc]
jmp 0x4316a5
mov eax, dword [esi]
lea eax, [edi + eax + 0x58]
push 0x4635f0
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x4316bb
push 0xf
push 2
push ebx
push 0xa
push dword [ebp - 0x18]
push dword [ebp - 0x1c]
call fcn.0044a5e0
push ebx
push 0x40000000
push edx
push eax
call fcn.0044b690
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], edx
fild qword [ebp - 0xc]
fdiv qword [0x45fe50]
push ecx
push ecx
fstp qword [esp]
call fcn.00415e5d
pop ecx
jmp 0x431749
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 0x431701
push 0xf
push ebx
push 0x3e8
push dword [ebp - 0x18]
push dword [ebp - 0x1c]
call fcn.0044a5e0
push pe_nt_image_headers32
push 0xd4a51000
push edx
push eax
call fcn.0044b690
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], edx
fild qword [ebp - 0xc]
jmp 0x431741
mov eax, dword [esi]
lea eax, [edi + eax + 0x58]
push 0x46355c
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x43176d
push 0xf
push ebx
push 0x3e8
push dword [ebp - 0x18]
push dword [ebp - 0x1c]
call fcn.0044a5e0
push 0x100
push ebx
push edx
push eax
call fcn.0044b690
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], edx
fild qword [ebp - 0xc]
fdiv qword [0x462010]
push ecx
push ecx
lea eax, [ebp + 0x284]
fstp qword [esp]
push eax
call fcn.00417eeb
lea eax, [ebp + 0x284]
push ebx
push eax
call fcn.00415cb1
add esp, 0x18
jmp 0x43109d
push dword [ebp - 0x18]
push dword [ebp - 0x1c]
jmp 0x4312a1
call dword [sym.imp.KERNEL32.dll_GetLogicalDrives]
mov edi, dword [sym.imp.KERNEL32.dll_lstrcatA]
mov dword [ebp], eax
xor esi, esi
xor eax, eax
inc eax
cmp esi, ebx
je 0x431794
mov ecx, esi
shl eax, cl
test dword [ebp], eax
je 0x431862
lea eax, [esi + 0x41]
push eax
lea eax, [ebp + 0x140]
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 + 0x244]
push eax
lea eax, [ebp + 0x140]
push eax
mov byte [ebp + 0x244], bl
call dword [sym.imp.KERNEL32.dll_GetVolumeInformationA]
cmp byte [ebp + 0x244], bl
jne 0x43180b
lea eax, [ebp + 0x140]
push eax
call dword [sym.imp.KERNEL32.dll_GetDriveTypeA]
cmp eax, 5
jne 0x43180b
push str.CD_ROM
lea eax, [ebp + 0x244]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea eax, [ebp + 0x140]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
lea ecx, [ebp + 0x140]
mov byte [eax + ecx - 1], bl
mov eax, ecx
push eax
lea eax, [ebp + 0x284]
push eax
call edi
cmp byte [ebp + 0x244], bl
je 0x431854
push 0x45cbfc
lea eax, [ebp + 0x284]
push eax
call edi
lea eax, [ebp + 0x244]
push eax
lea eax, [ebp + 0x284]
push eax
call edi
push 0x45e620
lea eax, [ebp + 0x284]
push eax
call edi
inc esi
cmp esi, 0x1a
jl 0x431789
jmp 0x43109d
add eax, edi
push str.Operating_System
push eax
call fcn.004010ff
pop ecx
test eax, eax
mov eax, dword [esi]
pop ecx
je 0x431bcb
lea eax, [edi + eax + 0x58]
push str.Computer_Name
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x4318bc
lea eax, [ebp]
push eax
lea eax, [ebp + 0x284]
push eax
mov dword [ebp], 0x103
call dword [sym.imp.KERNEL32.dll_GetComputerNameA]
jmp 0x43109d
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 0x4319b5
mov esi, dword [sym.imp.KERNEL32.dll_GetVersion]
call esi
cmp al, 5
jne 0x4318f6
call esi
shr eax, 8
cmp al, 1
jne 0x4318f6
mov eax, str.Windows_XP
jmp 0x4319a9
call fcn.0041505a
test eax, eax
je 0x431909
mov eax, str.Windows_Server_2008
jmp 0x4319a9
call esi
cmp al, 6
jne 0x431922
call esi
shr eax, 8
test al, al
jne 0x431922
mov eax, str.Windows_Vista
jmp 0x4319a9
call esi
cmp al, 6
jne 0x431938
call esi
shr eax, 8
cmp al, 1
jne 0x431938
mov eax, str.Windows_7
jmp 0x4319a9
call esi
cmp al, 5
jne 0x43194e
call esi
shr eax, 8
cmp al, 2
jne 0x43194e
mov eax, str.Windows_2003
jmp 0x4319a9
call esi
cmp al, 5
jne 0x431964
call esi
shr eax, 8
test al, al
jne 0x431964
mov eax, str.Windows_2000
jmp 0x4319a9
call esi
cmp al, 4
jne 0x43197a
call esi
shr eax, 8
cmp al, 0x5a
jne 0x43197a
mov eax, str.Windows_ME
jmp 0x4319a9
call esi
cmp al, 4
jne 0x431990
call esi
shr eax, 8
cmp al, 0xa
jne 0x431990
mov eax, str.Windows_98
jmp 0x4319a9
call esi
cmp al, 4
jne 0x4319a4
call esi
shr eax, 8
test al, al
mov eax, str.Windows_NT
je 0x4319a9
mov eax, str.Unknown
push eax
lea eax, [ebp + 0x284]
jmp 0x431096
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 0x4319da
call dword [sym.imp.KERNEL32.dll_GetVersion]
movzx eax, al
jmp 0x430eb9
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 0x4319fc
call dword [sym.imp.KERNEL32.dll_GetVersion]
shr eax, 8
jmp 0x4319d2
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 0x431a32
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 0x4312a6
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 0x431b5b
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 0x431b5b
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 0x431b5b
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 0x431abc
lea eax, [ebp + 0xac]
push eax
mov dword [ebp + 0xac], 0x94
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
push dword [ebp + 0xb8]
jmp 0x431445
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 0x431b29
lea eax, [ebp + 0xac]
push eax
mov dword [ebp + 0xac], 0x94
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
mov esi, dword [sym.imp.KERNEL32.dll_lstrlenA]
lea eax, [ebp + 0xc0]
push eax
call esi
lea ecx, [eax + 1]
mov eax, 0x103
cmp ecx, eax
jg 0x431b0f
lea eax, [ebp + 0xc0]
push eax
call esi
inc eax
push eax
lea eax, [ebp + 0xc0]
push eax
lea eax, [ebp + 0x284]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
jmp 0x43109d
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 0x43109d
push 0x104
lea eax, [ebp + 0x284]
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
jmp 0x43109d
push 0x98
lea eax, [ebp + 0x14]
push ebx
push eax
call fcn.00448090
add esp, 0xc
lea eax, [ebp + 0x10]
push eax
mov dword [ebp + 0x10], 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 0x431b9d
push dword [ebp + 0x20]
jmp 0x431445
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 + 0xa8]
pop ecx
jne 0x4313b7
movzx eax, byte [ebp + 0xaa]
jmp 0x4313b7
add eax, edi
push str.Change_Display_Settings
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
jne 0x43274d
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 0x43274d
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 0x431cad
push ebx
push ebx
push dword [ebp + 8]
push dword [ebp + 0xc]
push dword [edi + eax + 0x50]
call fcn.0043b804
mov eax, dword [0x47c474]
cmp eax, ebx
je 0x431c96
cmp byte [eax], bl
je 0x431c96
push eax
call fcn.0040d00f
test eax, eax
je 0x431c96
mov eax, dword [esi]
lea eax, [edi + eax + 0x58]
push str.Sync
push eax
mov dword [ebp], 0x20002
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
jne 0x431c60
or dword [ebp], 1
push dword [ebp]
lea eax, [ebp + 0x284]
push dword [0x47c474]
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 + 0x284]
push eax
push str.WINMM.DLL
call fcn.00421d6e
jmp 0x4328d0
mov eax, dword [0x478a40]
cmp eax, ebx
je 0x430b97
push str.Incorrect_media_file
jmp 0x430cb6
add eax, edi
push str.Tone
push eax
call fcn.004010ff
pop ecx
test eax, eax
mov eax, dword [esi]
pop ecx
je 0x431dd4
push ebx
push ebx
push dword [ebp + 8]
lea eax, [edi + eax + 0x15c]
push dword [ebp + 0xc]
push eax
call fcn.0043b804
push dword [0x47c474]
call dword [sym.imp.KERNEL32.dll_lstrlenA]
lea ecx, [eax + 1]
push 0x1f
pop eax
cmp ecx, eax
jg 0x431cfe
push dword [0x47c474]
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
push eax
push dword [0x47c474]
lea eax, [ebp + 0x244]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
lea eax, [ebp + 0x244]
push eax
call fcn.0040109c
pop ecx
cmp eax, 5
jge 0x431d36
push str.1000
lea eax, [ebp + 0x244]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov eax, dword [esi]
push ebx
push ebx
push dword [ebp + 8]
push dword [ebp + 0xc]
push dword [edi + eax + 0x50]
call fcn.0043b804
mov esi, dword [0x47c474]
push esi
call fcn.0040109c
pop ecx
cmp eax, 2
jge 0x431d83
lea eax, [ebp + 0x244]
push eax
call fcn.0040109c
pop ecx
cmp eax, ebx
jle 0x431d83
cmp byte [ebp + 0x244], bl
jne 0x431d77
push 0x64
pop eax
push eax
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x430b41
push esi
call fcn.0040109c
pop ecx
cmp eax, 0x25
jl 0x431dc2
push esi
call fcn.0040109c
pop ecx
cmp eax, 0x7fff
jg 0x431dc2
cmp byte [ebp + 0x244], bl
je 0x431db4
lea eax, [ebp + 0x244]
push eax
call fcn.0040109c
pop ecx
jmp 0x431db7
push 0x64
pop eax
push eax
push esi
call fcn.0040109c
pop ecx
push eax
jmp 0x431dc9
push 0x64
push 0x172
call dword [sym.imp.KERNEL32.dll_Beep]
jmp 0x430b41
add eax, edi
push str.Screen_Saver
push eax
call fcn.004010ff
pop ecx
test eax, eax
mov eax, dword [esi]
pop ecx
je 0x431f6d
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 0x431ef8
push 0x45e184
push 1
push 2
call fcn.00442f38
push str.HKEY_CURRENT_USERControl_PanelDesktopSCRNSAVE.EXE.BAK
mov edi, 0x103
push edi
lea eax, [ebp + 0x284]
push eax
push ebx
push 3
call fcn.00442f38
add esp, 0x28
lea eax, [ebp + 0x284]
cmp byte [ebp + 0x284], bl
je 0x431e52
push str.HKEY_CURRENT_USERControl_PanelDesktopSCRNSAVE.EXE
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
jmp 0x431ecb
mov esi, str.HKEY_CURRENT_USERControl_PanelDesktopSCRNSAVE.EXE
push esi
push edi
push eax
push ebx
push 3
call fcn.00442f38
add esp, 0x14
cmp byte [ebp + 0x284], bl
jne 0x431ee0
push edi
lea eax, [ebp + 0x140]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
mov edi, dword [sym.imp.KERNEL32.dll_lstrlenA]
lea eax, [ebp + 0x140]
push eax
call edi
lea ecx, [ebp + 0x140]
cmp byte [eax + ecx - 1], 0x5c
je 0x431ea5
push 0x45c800
mov eax, ecx
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea eax, [ebp + 0x140]
push eax
lea eax, [ebp + 0x284]
push str._slogon.scr
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
push esi
lea eax, [ebp + 0x284]
push eax
call edi
inc eax
push eax
lea eax, [ebp + 0x284]
push eax
push 1
push 2
call fcn.00442f38
add esp, 0x14
push str.HKEY_CURRENT_USERControl_PanelDesktopSCRNSAVE.EXE.BAK
push ebx
push ebx
push ebx
push 4
call fcn.00442f38
add esp, 0x14
push ebx
push ebx
push 1
jmp 0x431f60
push 0x45e8b4
push 1
push 2
call fcn.00442f38
mov esi, str.HKEY_CURRENT_USERControl_PanelDesktopSCRNSAVE.EXE
push esi
push 0x103
lea eax, [ebp + 0x284]
push eax
push ebx
push 3
call fcn.00442f38
add esp, 0x28
cmp byte [ebp + 0x284], bl
je 0x431f5d
push str.HKEY_CURRENT_USERControl_PanelDesktopSCRNSAVE.EXE.BAK
lea eax, [ebp + 0x284]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
push eax
lea eax, [ebp + 0x284]
push eax
push 1
push 2
call fcn.00442f38
push esi
push ebx
push ebx
push ebx
push 4
call fcn.00442f38
add esp, 0x28
push ebx
push ebx
push ebx
push 0x11
call dword [sym.imp.USER32.dll_SystemParametersInfoA]
jmp 0x430b41
add eax, edi
push str.Serial
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x430b41
mov eax, dword [esi]
push ebx
push ebx
push dword [ebp + 8]
lea eax, [edi + eax + 0x364]
push dword [ebp + 0xc]
push eax
call fcn.0043b804
push dword [0x47c474]
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
cmp eax, 0x103
jle 0x431fb6
mov eax, 0x103
jmp 0x431fc3
push dword [0x47c474]
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
push eax
push dword [0x47c474]
lea eax, [ebp + 0x284]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
lea eax, [ebp + 0x284]
dec eax
mov dword [ebp - 0x10], eax
lea eax, [ebp + 0x284]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ecx, dword [ebp - 0x10]
cmp byte [eax + ecx], 0x3a
jne 0x43200a
lea eax, [ebp + 0x284]
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 + 8]
lea eax, [edi + eax + 0x468]
push dword [ebp + 0xc]
push eax
call fcn.0043b804
push dword [0x47c474]
call fcn.0040109c
pop ecx
push ebx
push ebx
push dword [ebp + 8]
mov dword [ebp - 0x54], eax
mov eax, dword [esi]
push dword [ebp + 0xc]
lea eax, [edi + eax + 0x56c]
push eax
call fcn.0043b804
push dword [0x47c474]
call fcn.0040109c
pop ecx
push ebx
push ebx
push dword [ebp + 8]
mov dword [ebp - 0x50], eax
mov eax, dword [esi]
push dword [ebp + 0xc]
lea eax, [edi + eax + 0x670]
push eax
call fcn.0043b804
push str.Even
push dword [0x47c474]
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0x432093
push 0x4633bc
push dword [0x47c474]
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
mov eax, dword [esi]
push ebx
push ebx
push dword [ebp + 8]
lea eax, [edi + eax + 0x774]
push dword [ebp + 0xc]
push eax
call fcn.0043b804
push dword [0x47c474]
call fcn.0040109c
pop ecx
push ebx
push ebx
push dword [ebp + 8]
mov dword [ebp - 0x48], eax
mov eax, dword [esi]
push dword [ebp + 0xc]
lea eax, [edi + eax + 0x878]
push eax
call fcn.0043b804
push 0x4633b8
push dword [0x47c474]
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
neg eax
sbb eax, eax
push ebx
and eax, 0xfffffffe
push ebx
push dword [ebp + 8]
add eax, 2
push dword [ebp + 0xc]
mov dword [ebp - 0x4c], eax
mov eax, dword [esi]
lea eax, [edi + eax + 0x97c]
push eax
call fcn.0043b804
push dword [0x47c474]
call fcn.0040109c
mov dword [ebp - 0x40], eax
push dword [ebp - 0x40]
mov eax, dword [esi]
add eax, edi
lea ecx, [eax + 0x878]
push ecx
push dword [ebp - 0x48]
add eax, 0x670
push eax
push dword [ebp - 0x50]
lea eax, [ebp + 0x284]
push dword [ebp - 0x54]
push eax
push str.____Opening_Serial_Port_on__s...___d___d___s___d___s___d
call fcn.00421b06
mov eax, dword [esi]
add eax, edi
push str.RECEIVE
push eax
call fcn.004010ff
add esp, 0x2c
test eax, eax
je 0x43246c
cmp byte [0x47b0e0], 2
jb 0x43216f
push str.____Open_Serial_Port...
call fcn.00421b06
pop ecx
push dword [0x478a40]
lea eax, [ebp + 0x284]
push dword [ebp - 0x44]
push dword [ebp - 0x48]
push dword [ebp - 0x4c]
push dword [ebp - 0x50]
push dword [ebp - 0x54]
push eax
push 2
call fcn.00420cf4
mov dword [0x47b1e8], eax
cmp eax, ebx
jne 0x4321b8
cmp byte [0x47b0e0], 2
jb 0x430b97
push str.______Serial_Failure__
call fcn.00421b06
pop ecx
jmp 0x430b97
cmp dword [ebp - 0x40], ebx
je 0x4321cd
mov eax, dword [ebp - 0x40]
imul eax, eax, 0x3e8
push eax
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp byte [0x47b0e0], 2
jb 0x4321e1
push str.____Create_Serial_Event...
call fcn.00421b06
pop ecx
push 0x14
lea eax, [ebp - 0x80]
push ebx
push eax
call fcn.00448090
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 0x432243
cmp byte [0x47b0e0], 2
jb 0x432216
push str.______Serial_Failure__
call fcn.00421b06
pop ecx
mov eax, dword [0x47b1e8]
cmp eax, ebx
je 0x432226
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [0x478a40]
mov dword [0x47b1e8], ebx
cmp eax, ebx
je 0x430b97
push str.CreateEvent_failed
jmp 0x430cb6
cmp byte [0x47b0e0], 2
jb 0x432257
push str.____Serial_Comm_Mask...
call fcn.00421b06
pop ecx
push 1
push dword [0x47b1e8]
call dword [sym.imp.KERNEL32.dll_SetCommMask]
test eax, eax
jne 0x4322aa
cmp byte [0x47b0e0], 2
jb 0x43227d
push str.______Serial_Failure__
call fcn.00421b06
pop ecx
mov eax, dword [0x47b1e8]
cmp eax, ebx
je 0x43228d
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [0x478a40]
mov dword [0x47b1e8], ebx
cmp eax, ebx
je 0x430b97
push str.SetCommMask_failed
jmp 0x430cb6
mov eax, dword [esi]
push ebx
push ebx
push dword [ebp + 8]
lea eax, [edi + eax + 0x15c]
push dword [ebp + 0xc]
push eax
call fcn.0043b804
push dword [0x47c474]
call dword [sym.imp.KERNEL32.dll_lstrlenA]
lea ecx, [eax + 1]
push 0x1f
pop eax
cmp ecx, eax
jg 0x4322e4
push dword [0x47c474]
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
push eax
push dword [0x47c474]
lea eax, [ebp + 0x244]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
mov esi, dword [0x47c474]
push esi
call fcn.0040109c
pop ecx
mov ecx, eax
imul ecx, ecx, 0x3e8
mov eax, 0x3e8
cmp ecx, eax
jl 0x432323
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 [0x47b1f0], ebx
call esi
push 1
push 0x2000000
mov dword [ebp - 8], eax
call fcn.00447e84
pop ecx
pop ecx
mov dword [ebp + 4], eax
cmp eax, ebx
je 0x43219b
cmp byte [0x47b0e0], 2
jb 0x432366
push str.____Create_Serial_Thread...
call fcn.00421b06
pop ecx
lea eax, [ebp - 0x64]
push eax
push ebx
push dword [ebp + 4]
push 0x420ebe
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateThread]
test eax, eax
jne 0x4323aa
mov eax, dword [0x47b1e8]
cmp eax, ebx
je 0x43238f
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [0x478a40]
mov dword [0x47b1e8], ebx
cmp eax, ebx
je 0x4323aa
push str.Serial_Port_CreateThread_failed
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
cmp byte [0x47b0e0], 2
jb 0x432401
push str.____Waiting_for_Serial_Object...
call fcn.00421b06
pop ecx
jmp 0x432401
push 0x3e8
push dword [ebp - 0x70]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x432409
cmp edi, ebx
jne 0x4323e9
cmp dword [0x47b1f0], ebx
jbe 0x4323e9
push str.____Receiving_Serial_Transmission...
call fcn.00421b06
pop ecx
cmp dword [0x47b1f0], edi
jne 0x4323fb
call esi
sub eax, dword [ebp - 8]
cmp eax, dword [ebp - 0x10]
ja 0x432409
mov edi, dword [0x47b1f0]
cmp dword [0x47b1e8], ebx
jne 0x4323c0
cmp byte [0x47b0e0], 2
jb 0x43241d
push str.____Closing_Serial_Port...
call fcn.00421b06
pop ecx
mov eax, dword [0x47b1e8]
cmp eax, ebx
je 0x43242d
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push dword [0x47b1f0]
mov dword [0x47b1e8], ebx
push dword [ebp + 4]
push dword [ebp + 8]
push dword [ebp + 0xc]
call fcn.004245b3
push dword [ebp + 4]
call fcn.00447ab6
push dword [0x47b1f0]
push str._____lu_Total_bytes_received_during_serial_transmission
call fcn.00421b06
mov eax, dword [0x47b1f0]
add esp, 0xc
jmp 0x4328d0
cmp byte [0x47b0e0], 2
jb 0x432480
push str.____Open_Serial_Port...
call fcn.00421b06
pop ecx
push dword [0x478a40]
lea eax, [ebp + 0x284]
push dword [ebp - 0x44]
push dword [ebp - 0x48]
push dword [ebp - 0x4c]
push dword [ebp - 0x50]
push dword [ebp - 0x54]
push eax
push 1
call fcn.00420cf4
mov dword [0x47b1e8], eax
cmp eax, ebx
je 0x43219b
cmp dword [ebp - 0x40], ebx
je 0x4324c5
mov eax, dword [ebp - 0x40]
imul eax, eax, 0x3e8
push eax
call dword [sym.imp.KERNEL32.dll_Sleep]
lea eax, [ebp - 4]
push eax
mov eax, dword [esi]
push ebx
push dword [ebp + 8]
mov dword [ebp - 4], ebx
push dword [ebp + 0xc]
push dword [edi + eax + 0x50]
call fcn.0043b804
cmp dword [ebp - 4], ebx
jne 0x4324f2
push dword [0x47c474]
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov dword [ebp - 4], eax
push dword [0x47c474]
call fcn.0040d00f
test eax, eax
je 0x432547
push dword [0x47c474]
call fcn.0040e912
mov esi, eax
lea ecx, [esi + 0x10000]
mov eax, 0x1000
mov dword [ebp - 4], esi
cmp ecx, eax
jbe 0x432522
mov eax, ecx
push 1
push eax
call fcn.00447e84
pop ecx
pop ecx
mov dword [ebp + 4], eax
cmp eax, ebx
je 0x430b97
push esi
push eax
push ebx
push dword [0x47c474]
call fcn.0040e78f
jmp 0x432586
mov esi, dword [ebp - 4]
lea ecx, [esi + 0x10000]
mov eax, 0x1000
cmp ecx, eax
jbe 0x43255b
mov eax, ecx
push 1
push eax
call fcn.00447e84
pop ecx
pop ecx
mov dword [ebp + 4], eax
cmp eax, ebx
je 0x432586
mov eax, dword [0x47c474]
cmp eax, ebx
je 0x432586
cmp esi, ebx
jbe 0x432586
push esi
push eax
push dword [ebp + 4]
call fcn.00447af0
add esp, 0xc
mov eax, dword [ebp - 0x54]
cdq
and edx, 7
add eax, edx
mov ecx, 0x200
sar eax, 3
xor edi, edi
mov dword [ebp + 0xc], ebx
mov dword [ebp - 0x10], ecx
cmp eax, ecx
jg 0x4325a6
mov dword [ebp - 0x10], eax
push dword [ebp - 4]
push str.____Transmitting__lu_bytes...
call fcn.00421b06
pop ecx
pop ecx
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x10]
sub eax, edi
mov dword [ebp - 0x20], ecx
cmp ecx, eax
jb 0x4325c7
mov dword [ebp - 0x20], eax
cmp byte [0x47b0e0], 2
mov esi, dword [ebp - 0x20]
jb 0x4325de
push str.____Write_Serial_Port...
call fcn.00421b06
pop ecx
push ebx
lea eax, [ebp - 0x20]
push eax
mov eax, dword [ebp + 4]
push esi
add eax, edi
push eax
push dword [0x47b1e8]
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x43266a
call dword [sym.imp.KERNEL32.dll_GetLastError]
push ebx
push 0xfe
mov esi, eax
lea eax, [ebp + 0x284]
push eax
push 0x400
push esi
push ebx
push 0x1200
call dword [sym.imp.KERNEL32.dll_FormatMessageA]
cmp esi, 0x3e5
jne 0x432703
push 0xffffffffffffffff
push dword [ebp - 0x70]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
jne 0x43266a
push ebx
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x80]
push eax
push dword [0x47b1e8]
call dword [sym.imp.KERNEL32.dll_GetOverlappedResult]
test eax, eax
jne 0x43266a
mov eax, dword [0x478a40]
cmp eax, ebx
je 0x43266a
push str.GetOverlappedResult_failed
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
add edi, dword [ebp - 0x20]
jne 0x432678
mov dword [ebp + 0xc], 1
jmp 0x4326bb
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call esi
sub eax, dword [ebp - 8]
cmp eax, 0x1bc
jbe 0x4326bb
mov ecx, dword [ebp - 4]
cmp ecx, 1
jae 0x432695
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 [0x4771b4]
call fcn.00420796
add esp, 0x18
call esi
mov dword [ebp - 8], eax
cmp dword [ebp - 4], edi
jbe 0x4326c9
cmp dword [ebp + 0xc], ebx
je 0x4325b5
push edi
push str.____Transmission_Complete:__lu_Total_Bytes
call fcn.00421b06
mov eax, dword [0x47b1e8]
pop ecx
pop ecx
cmp eax, ebx
je 0x4326e6
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [0x47b1e8], ebx
cmp dword [ebp + 4], ebx
je 0x430b41
push dword [ebp + 4]
call fcn.00447ab6
pop ecx
jmp 0x430b41
cmp byte [0x47b0e0], 2
jb 0x432717
push str.______Serial_Failure__
call fcn.00421b06
pop ecx
mov eax, dword [0x47b1e8]
cmp eax, ebx
je 0x432727
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea eax, [ebp + 0x284]
push eax
push str.WriteFile_communication_failure:__s
push dword [0x478a40]
mov dword [0x47b1e8], ebx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
jmp 0x430b97
mov dword [ebp + 4], ebx
push 1
push 0x1000
call fcn.00447e84
pop ecx
pop ecx
mov ecx, dword [ebp + 4]
inc dword [ebp + 4]
cmp dword [ebp + 4], 4
mov dword [ebp + ecx*4 - 0x38], eax
jl 0x432750
mov eax, dword [esi]
push ebx
push ebx
push dword [ebp + 8]
push dword [ebp + 0xc]
push dword [edi + eax + 0x50]
call fcn.0043b804
push dword [0x47c474]
lea eax, [ebp + 0x284]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push ebx
push ebx
push str.4_Bit
push str.16_Colors
lea eax, [ebp + 0x284]
push eax
call fcn.0044168f
push ebx
push ebx
push str.8_Bit
push str.256_Colors
lea eax, [ebp + 0x284]
push eax
call fcn.0044168f
push ebx
push ebx
push str.16_Bit
push str.High_Color__16_Bit_
lea eax, [ebp + 0x284]
push eax
call fcn.0044168f
push ebx
push ebx
push str.32_Bit
push str.True_Color__32_Bit_
lea eax, [ebp + 0x284]
push eax
call fcn.0044168f
push ebx
push 1
mov edi, 0x103
push edi
push dword [ebp - 0x38]
mov esi, 0x463144
push ebx
push esi
lea eax, [ebp + 0x284]
push eax
call fcn.00444fa4
push ebx
push 1
push edi
push dword [ebp - 0x34]
lea eax, [ebp + 0x284]
push 1
push esi
push eax
call fcn.00444fa4
push ebx
mov esi, 0x45cc00
push esi
push dword [ebp - 0x34]
call fcn.004417cc
push ebx
push 1
push edi
push dword [ebp - 0x30]
lea eax, [ebp + 0x284]
push 1
push esi
push eax
call fcn.00444fa4
push ebx
push esi
push dword [ebp - 0x30]
call fcn.004417cc
push ebx
push 1
push edi
push dword [ebp - 0x2c]
push 2
push esi
lea eax, [ebp + 0x284]
push eax
call fcn.00444fa4
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 dword [ebp - 0x38]
call fcn.0040109c
pop ecx
push eax
push 3
call fcn.0041376a
cmp eax, 0xffffffff
jne 0x4328b7
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 fcn.0040248b
xor esi, esi
mov eax, dword [ebp + esi*4 - 0x38]
cmp eax, ebx
je 0x4328c8
push eax
call fcn.00447ab6
pop ecx
inc esi
cmp esi, 4
jl 0x4328b9
mov eax, esi
mov ecx, dword [ebp + 0x388]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00448080
add ebp, 0x38c
leave
ret 8