Function at 0x4221d0
Capabilities:
Check os version
Get cpu information
Get geographical location
Get system information on windows
Query or enumerate registry value
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x468b82
mov eax, dword fs:[0]
push eax
mov eax, 0x51d8
call fcn.00455660
mov eax, dword [0x47e378]
xor eax, esp
mov dword [esp + 0x51d4], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x47e378]
xor eax, esp
push eax
lea eax, [esp + 0x51ec]
mov dword fs:[0], eax
mov esi, dword [esp + 0x51fc]
cmp dword [esi + 0x9c98], 1
jne 0x42426b
mov edi, dword [sym.imp.ole32.dll_CoCreateInstance]
lea eax, [esp + 0x18]
push eax
push 0x46cff4
xor ebp, ebp
push 0x15
push ebp
push 0x46d0b4
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x40], ebp
mov dword [esp + 0x48], ebp
call edi
lea ecx, [esp + 0x2c]
push ecx
push 0x46cf74
push 0x15
push ebp
push 0x46d034
call edi
lea edx, [esp + 0x34]
push edx
push 0x46cf64
push 0x15
push ebp
push 0x46d024
call edi
test eax, eax
jl 0x42422d
cmp dword [esp + 0x18], ebp
je 0x42422d
cmp dword [esp + 0x2c], ebp
je 0x42422d
cmp dword [esp + 0x34], ebp
je 0x424241
push 0x6c
lea eax, [esp + 0x124]
push ebp
push eax
mov dword [esp + 0x80], ebp
call fcn.004541e0
push 0x104
lea ecx, [esp + 0x43c0]
push ebp
push ecx
call fcn.004541e0
mov edx, dword [0x48bc18]
push edx
push 0x104
lea eax, [esp + 0x43d0]
push eax
push 0xba7
push ebp
call sub.hccutils.DLL_LoadSTRING
push 0x104
lea ecx, [esp + 0x45e8]
push ebp
push ecx
call fcn.004541e0
mov edx, dword [0x48bc18]
push edx
push 0x104
lea eax, [esp + 0x45f8]
push eax
push 0x1bb0
push ebp
call sub.hccutils.DLL_LoadSTRING
add esp, 0x4c
push 0x104
lea ecx, [esp + 0x49cc]
push ebp
push ecx
call fcn.004541e0
mov edx, dword [0x48bc18]
push edx
push 0x104
lea eax, [esp + 0x49dc]
push eax
push 0xfcf
push ebp
call sub.hccutils.DLL_LoadSTRING
push 0x104
lea ecx, [esp + 0x4bf4]
push ebp
push ecx
call fcn.004541e0
mov edx, dword [0x48bc18]
push edx
push 0x104
lea eax, [esp + 0x4c04]
push eax
push 0x1bb4
push ebp
call sub.hccutils.DLL_LoadSTRING
add esp, 0x40
push 0x104
lea ecx, [esp + 0x4ee0]
push ebp
push ecx
call fcn.004541e0
mov edx, dword [0x48bc18]
push edx
push 0x104
lea eax, [esp + 0x4ef0]
push eax
push 0xfd0
push ebp
call sub.hccutils.DLL_LoadSTRING
push 0x104
lea ecx, [esp + 0x4dfc]
push ebp
push ecx
call fcn.004541e0
mov edx, dword [0x48bc18]
push edx
push 0x104
lea eax, [esp + 0x4e0c]
push eax
push 0x1bb5
push ebp
call sub.hccutils.DLL_LoadSTRING
mov eax, dword [esp + 0x6c]
mov ecx, dword [eax]
add esp, 0x40
lea edx, [esp + 0x120]
push edx
push 0x6c
push eax
mov eax, dword [ecx + 0x10]
call eax
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax]
lea edx, [esp + 0x74]
push edx
push eax
mov eax, dword [ecx + 0x24]
call eax
test eax, eax
jl 0x42422d
mov dword [esi + 0x9ca0], ebp
mov dword [esp + 0x3c], ebp
mov edi, ebp
mov ebx, 1
mov ecx, edi
shl ebx, cl
test dword [esp + 0x74], ebx
je 0x423523
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
mov edx, dword [ecx + 0xc]
push ebx
push eax
call edx
test eax, eax
jl 0x423523
mov eax, dword [esi + 0x9ca0]
mov ecx, eax
shl ecx, 4
sub ecx, eax
mov dword [esi + ecx*4 + 0x9cf0], ebx
mov eax, dword [esi + 0x9ca0]
mov edx, eax
shl edx, 4
sub edx, eax
mov dword [esi + edx*4 + 0xa0b0], ebx
cmp ebx, dword [esp + 0x134]
je 0x422499
cmp ebx, dword [esp + 0x160]
je 0x422499
mov eax, dword [esi + 0x9ca0]
mov ecx, eax
shl ecx, 4
sub ecx, eax
mov byte [esi + ecx*4 + 0xa0b4], 0
jmp 0x4224ae
mov eax, dword [esi + 0x9ca0]
mov edx, eax
shl edx, 4
sub edx, eax
mov byte [esi + edx*4 + 0xa0b4], 1
lea eax, [esp + 0x45b8]
push eax
mov eax, dword [esi + 0x9ca0]
mov ecx, eax
shl ecx, 4
sub ecx, eax
lea ecx, [esi + ecx*4 + 0x9cf8]
call fcn.00411b10
mov eax, dword [esi + 0x9ca0]
mov ecx, eax
shl ecx, 4
lea edx, [esp + 0x43b0]
sub ecx, eax
push edx
lea ecx, [esi + ecx*4 + 0xa0b8]
call fcn.00411b10
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0x23]
push ecx
mov byte [esp + 0x27], 0
mov edx, dword [eax]
mov edx, dword [edx + 0x14]
push ebx
push eax
call edx
test eax, eax
jl 0x42262f
push 0x104
lea eax, [esp + 0x42b0]
push ebp
push eax
call fcn.004541e0
push 0x104
lea ecx, [esp + 0x47d0]
push ebp
push ecx
call fcn.004541e0
mov edx, dword [0x48bc18]
add esp, 0x18
cmp byte [esp + 0x23], 0
push edx
lea eax, [esp + 0x42b0]
push 0x104
push eax
jne 0x4225be
push 0xfd1
push ebp
call sub.hccutils.DLL_LoadSTRING
mov ecx, dword [0x48bc18]
push ecx
push 0x104
lea edx, [esp + 0x47dc]
push edx
push 0x1bb1
push ebp
call sub.hccutils.DLL_LoadSTRING
add esp, 0x28
lea eax, [esp + 0x47c0]
push eax
mov eax, dword [esi + 0x9ca0]
mov ecx, eax
shl ecx, 4
sub ecx, eax
lea ecx, [esi + ecx*4 + 0x9cf8]
call fcn.00411b10
mov eax, dword [esi + 0x9ca0]
mov ecx, eax
shl ecx, 4
sub ecx, eax
lea edx, [esp + 0x42ac]
lea ecx, [esi + ecx*4 + 0xa0b8]
jmp 0x422629
push 0xfd2
push ebp
call sub.hccutils.DLL_LoadSTRING
mov eax, dword [esi + 0x9ca0]
mov edx, eax
shl edx, 4
add esp, 0x14
lea ecx, [esp + 0x42ac]
sub edx, eax
push ecx
lea ecx, [esi + edx*4 + 0xa0b8]
call fcn.00411b10
mov eax, dword [0x48bc18]
push eax
push 0x104
lea ecx, [esp + 0x47c8]
push ecx
push 0x1bb2
push ebp
call sub.hccutils.DLL_LoadSTRING
mov eax, dword [esi + 0x9ca0]
mov ecx, eax
shl ecx, 4
add esp, 0x14
sub ecx, eax
lea edx, [esp + 0x47c0]
lea ecx, [esi + ecx*4 + 0x9cf8]
push edx
call fcn.00411b10
mov eax, dword [esi + 0x9ca0]
mov ecx, eax
shl ecx, 4
lea edx, [esp + 0x45b8]
sub ecx, eax
push edx
lea ecx, [esi + ecx*4 + 0x9d0c]
call fcn.00411b10
mov eax, dword [esi + 0x9ca0]
mov ecx, eax
shl ecx, 4
lea edx, [esp + 0x43b0]
sub ecx, eax
push edx
lea ecx, [esi + ecx*4 + 0xa0cc]
call fcn.00411b10
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0x48]
push ecx
mov dword [esp + 0x4c], ebp
mov edx, dword [eax]
mov edx, dword [edx + 0x18]
push ebx
push eax
call edx
test eax, eax
jl 0x4226c7
mov eax, dword [esp + 0x48]
push eax
mov eax, dword [esi + 0x9ca0]
mov ecx, eax
shl ecx, 4
sub ecx, eax
lea ecx, [esi + ecx*4 + 0x9d0c]
call fcn.004214b0
mov eax, dword [esi + 0x9ca0]
mov edx, dword [esp + 0x48]
mov ecx, eax
shl ecx, 4
sub ecx, eax
push edx
lea ecx, [esi + ecx*4 + 0xa0cc]
call fcn.004214b0
mov eax, dword [esp + 0x48]
cmp eax, ebp
je 0x4226d6
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [esi + 0x9ca0]
mov ecx, eax
shl ecx, 4
lea edx, [esp + 0x45b8]
sub ecx, eax
push edx
lea ecx, [esi + ecx*4 + 0x9d10]
call fcn.00411b10
mov eax, dword [esi + 0x9ca0]
mov ecx, eax
shl ecx, 4
lea edx, [esp + 0x43b0]
sub ecx, eax
push edx
lea ecx, [esi + ecx*4 + 0xa0d0]
call fcn.00411b10
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0x6c]
push ecx
mov dword [esp + 0x70], ebp
mov edx, dword [eax]
mov edx, dword [edx + 0x1c]
push ebx
push eax
call edx
test eax, eax
jl 0x422785
cmp dword [esp + 0x6c], 1
jne 0x422743
lea eax, [esp + 0x4bd0]
push eax
jmp 0x42274b
lea edx, [esp + 0x4dd8]
push edx
mov eax, dword [esi + 0x9ca0]
mov ecx, eax
shl ecx, 4
sub ecx, eax
lea ecx, [esi + ecx*4 + 0x9d10]
call fcn.00411b10
mov eax, dword [esi + 0x9ca0]
mov ecx, eax
shl ecx, 4
lea edx, [esp + 0x49c8]
sub ecx, eax
push edx
lea ecx, [esi + ecx*4 + 0xa0d0]
call fcn.00411b10
mov eax, dword [esi + 0x9ca0]
add eax, 0x29e
mov ecx, eax
shl ecx, 4
lea edx, [esp + 0x45b8]
sub ecx, eax
push edx
lea ecx, [esi + ecx*4]
call fcn.00411b10
mov eax, dword [esi + 0x9ca0]
add eax, 0x2ae
mov ecx, eax
shl ecx, 4
lea edx, [esp + 0x43b0]
sub ecx, eax
push edx
lea ecx, [esi + ecx*4]
call fcn.00411b10
fldz
mov eax, dword [esp + 0x18]
fstp dword [esp + 0x60]
mov edx, dword [eax]
mov edx, dword [edx + 0x20]
lea ecx, [esp + 0x60]
push ecx
push ebx
push eax
call edx
test eax, eax
jl 0x422925
push 0x104
lea eax, [esp + 0x42b0]
push ebp
push eax
call fcn.004541e0
fld dword [esp + 0x6c]
fnstcw word [esp + 0x20]
movzx eax, word [esp + 0x20]
or eax, 0xc00
mov dword [esp + 0x30], eax
mov eax, 0xcccccccd
fldcw word [esp + 0x30]
push 0x104
push ebp
fistp qword [esp + 0x38]
mov ecx, dword [esp + 0x38]
fldcw word [esp + 0x28]
mul ecx
mov edi, edx
lea edx, [esp + 0x4ff4]
push edx
shr edi, 3
call fcn.004541e0
mov eax, dword [0x48bc18]
push eax
push 0x104
lea ecx, [esp + 0x5000]
push ecx
push 0xbe2
push ebp
call sub.hccutils.DLL_LoadSTRING
fld dword [esp + 0x8c]
lea edx, [edi + edi*4]
fnstcw word [esp + 0x40]
movzx eax, word [esp + 0x40]
or eax, 0xc00
fld st(0)
mov dword [esp + 0x50], eax
add edx, edx
fldcw word [esp + 0x50]
fistp qword [esp + 0x50]
mov ecx, dword [esp + 0x50]
sub ecx, edx
fldcw word [esp + 0x40]
fmul qword [0x46d200]
fnstcw word [esp + 0x40]
movzx eax, word [esp + 0x40]
or eax, 0xc00
mov dword [esp + 0x50], eax
mov eax, ecx
fldcw word [esp + 0x50]
imul eax, eax, 0xffffff9c
fistp qword [esp + 0x50]
mov edx, dword [esp + 0x50]
fldcw word [esp + 0x40]
sub eax, edx
push eax
movsx eax, byte [esp + 0x5010]
push eax
push ecx
lea ecx, [esp + 0x42e4]
push str._d_c_d
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
mov eax, dword [esi + 0x9ca0]
add eax, 0x29e
mov ecx, eax
shl ecx, 4
add esp, 0x40
lea edx, [esp + 0x42ac]
sub ecx, eax
push edx
lea ecx, [esi + ecx*4]
call fcn.00411b10
mov eax, dword [esi + 0x9ca0]
add eax, 0x2ae
mov ecx, eax
lea edx, [esp + 0x42ac]
shl ecx, 4
push edx
sub ecx, eax
lea ecx, [esi + ecx*4]
call fcn.00411b10
mov eax, dword [esi + 0x9ca0]
mov ecx, eax
shl ecx, 4
lea edx, [esp + 0x45b8]
sub ecx, eax
push edx
lea ecx, [esi + ecx*4 + 0x9d24]
call fcn.00411b10
mov eax, dword [esi + 0x9ca0]
mov ecx, eax
shl ecx, 4
lea edx, [esp + 0x43b0]
sub ecx, eax
push edx
lea ecx, [esi + ecx*4 + 0xa0e4]
call fcn.00411b10
mov eax, dword [esi + 0x9ca0]
mov ecx, eax
shl ecx, 4
lea edx, [esp + 0x45b8]
sub ecx, eax
push edx
lea ecx, [esi + ecx*4 + 0x9d28]
call fcn.00411b10
mov eax, dword [esi + 0x9ca0]
mov ecx, eax
shl ecx, 4
lea edx, [esp + 0x43b0]
sub ecx, eax
push edx
lea ecx, [esi + ecx*4 + 0xa0e8]
call fcn.00411b10
xor eax, eax
mov dword [esp + 0x4020], eax
mov dword [esp + 0x4010], eax
mov dword [esp + 0x4014], eax
mov dword [esp + 0x4018], eax
mov dword [esp + 0x401c], eax
mov dword [esp + 0x4024], eax
mov dword [esp + 0x4028], eax
mov dword [esp + 0x402c], eax
mov dword [esp + 0x4030], eax
mov eax, dword [esp + 0x2c]
lea ecx, [esp + 0x4010]
push ecx
mov dword [esp + 0x4024], ebx
mov edx, dword [eax]
mov edx, dword [edx + 0x3c]
push 0x24
push eax
call edx
mov edi, eax
cmp edi, ebp
jl 0x422b8f
push 0x104
lea eax, [esp + 0x42b0]
push ebp
push eax
call fcn.004541e0
mov al, byte [esp + 0x4034]
add esp, 0xc
test al, 1
je 0x422a50
mov ecx, dword [0x48bc18]
push ecx
push 0x104
lea edx, [esp + 0x42b4]
push edx
push 0x1bf0
jmp 0x422b2d
test al, 2
je 0x422a71
mov eax, dword [0x48bc18]
push eax
push 0x104
lea ecx, [esp + 0x42b4]
push ecx
push 0x1bf1
jmp 0x422b2d
test al, 4
je 0x422a93
mov edx, dword [0x48bc18]
push edx
push 0x104
lea eax, [esp + 0x42b4]
push eax
push 0x1bf2
jmp 0x422b2d
test al, 8
je 0x422ab5
mov ecx, dword [0x48bc18]
push ecx
push 0x104
lea edx, [esp + 0x42b4]
push edx
push 0x1bf3
jmp 0x422b2d
test al, 0x10
je 0x422ad3
mov eax, dword [0x48bc18]
push eax
push 0x104
lea ecx, [esp + 0x42b4]
push ecx
push 0x1bf4
jmp 0x422b2d
test al, 0x20
je 0x422af2
mov edx, dword [0x48bc18]
push edx
push 0x104
lea eax, [esp + 0x42b4]
push eax
push 0x1bf5
jmp 0x422b2d
test al, 0x40
je 0x422b11
mov ecx, dword [0x48bc18]
push ecx
push 0x104
lea edx, [esp + 0x42b4]
push edx
push 0x1bf6
jmp 0x422b2d
test al, al
jns 0x422b36
mov eax, dword [0x48bc18]
push eax
push 0x104
lea ecx, [esp + 0x42b4]
push ecx
push 0x1bf7
push ebp
call sub.hccutils.DLL_LoadSTRING
add esp, 0x14
lea eax, [esp + 0x42ac]
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x422b40
sub eax, edx
je 0x422b8f
mov eax, dword [esi + 0x9ca0]
mov ecx, eax
shl ecx, 4
lea edx, [esp + 0x42ac]
sub ecx, eax
push edx
lea ecx, [esi + ecx*4 + 0xa0e4]
call fcn.00411b10
mov eax, dword [esi + 0x9ca0]
mov ecx, eax
shl ecx, 4
lea edx, [esp + 0x42ac]
sub ecx, eax
push edx
lea ecx, [esi + ecx*4 + 0x9d24]
call fcn.00411b10
push 0x104
lea edx, [esp + 0x42b0]
push ebp
push edx
call fcn.004541e0
add esp, 0xc
test ebx, 0x300
jne 0x422c19
test ebx, 0x3000
jne 0x422bfe
test bl, 3
jne 0x422be0
test bl, 0x30
je 0x422c99
mov eax, dword [0x48bc18]
push eax
push 0x104
lea ecx, [esp + 0x42b4]
push ecx
push 0x1bfb
jmp 0x422c90
mov edx, dword [0x48bc18]
push edx
push 0x104
lea eax, [esp + 0x42b4]
push eax
push 0x1bfc
jmp 0x422c90
mov ecx, dword [0x48bc18]
push ecx
push 0x104
lea edx, [esp + 0x42b4]
push edx
push 0x1bfa
jmp 0x422c90
push 0x2c
lea eax, [esp + 0xb8]
push ebp
push eax
call fcn.004541e0
mov eax, dword [esp + 0x38]
add esp, 0xc
lea edx, [esp + 0xb4]
push edx
mov dword [esp + 0xc8], ebx
mov ecx, dword [eax]
push 0x2c
push eax
mov eax, dword [ecx + 0x38]
call eax
cmp dword [esp + 0xc8], 1
je 0x422c78
cmp dword [esp + 0xcc], 1
je 0x422c78
mov ecx, dword [0x48bc18]
push ecx
push 0x104
lea edx, [esp + 0x42b4]
push edx
push 0x1bf9
jmp 0x422c90
mov eax, dword [0x48bc18]
push eax
push 0x104
lea ecx, [esp + 0x42b4]
push ecx
push 0x1bf8
push ebp
call sub.hccutils.DLL_LoadSTRING
add esp, 0x14
lea eax, [esp + 0x42ac]
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x422ca3
sub eax, edx
je 0x422cf2
mov eax, dword [esi + 0x9ca0]
mov ecx, eax
shl ecx, 4
lea edx, [esp + 0x42ac]
sub ecx, eax
push edx
lea ecx, [esi + ecx*4 + 0xa0e8]
call fcn.00411b10
mov eax, dword [esi + 0x9ca0]
mov ecx, eax
shl ecx, 4
lea edx, [esp + 0x42ac]
sub ecx, eax
push edx
lea ecx, [esi + ecx*4 + 0x9d28]
call fcn.00411b10
mov eax, dword [esi + 0x9ca0]
mov ecx, eax
shl ecx, 4
lea edx, [esp + 0x43b0]
sub ecx, eax
push edx
lea ecx, [esi + ecx*4 + 0xa0d4]
call fcn.00411b10
mov eax, dword [esi + 0x9ca0]
mov ecx, eax
shl ecx, 4
lea edx, [esp + 0x43b0]
sub ecx, eax
push edx
lea ecx, [esi + ecx*4 + 0xa0d8]
call fcn.00411b10
mov eax, dword [esi + 0x9ca0]
mov ecx, eax
shl ecx, 4
lea edx, [esp + 0x45b8]
sub ecx, eax
push edx
lea ecx, [esi + ecx*4 + 0x9d14]
call fcn.00411b10
mov eax, dword [esi + 0x9ca0]
mov ecx, eax
shl ecx, 4
lea edx, [esp + 0x45b8]
sub ecx, eax
push edx
lea ecx, [esi + ecx*4 + 0x9d18]
call fcn.00411b10
fldz
test ebx, 0xf000
fst dword [esp + 0x50]
fst dword [esp + 0x58]
je 0x422d92
fst dword [esp + 0x50]
fst dword [esp + 0x58]
jmp 0x422daf
mov eax, dword [esp + 0x18]
fstp st(0)
mov edx, dword [eax]
mov edx, dword [edx + 0x24]
lea ecx, [esp + 0x50]
push ecx
lea ecx, [esp + 0x5c]
push ecx
push ebx
push eax
call edx
fldz
mov edi, eax
cmp edi, ebp
jl 0x423019
fcom dword [esp + 0x58]
fnstsw ax
test ah, 0x44
jnp 0x423019
fcomp dword [esp + 0x50]
fnstsw ax
test ah, 0x44
jnp 0x42301b
push 0x104
lea eax, [esp + 0x4cd8]
push 0
push eax
call fcn.004541e0
mov ecx, dword [0x48bc18]
push ecx
push 0x104
lea edx, [esp + 0x4ce8]
push edx
push 0xbe2
push 0
call sub.hccutils.DLL_LoadSTRING
fld dword [esp + 0x70]
fnstcw word [esp + 0x34]
movzx eax, word [esp + 0x34]
or eax, 0xc00
mov dword [esp + 0x44], eax
push 0x104
fldcw word [esp + 0x48]
push 0
fistp qword [esp + 0x4c]
mov eax, dword [esp + 0x4c]
lea ecx, [eax + eax*4]
add ecx, ecx
mov eax, 0xcccccccd
fldcw word [esp + 0x3c]
mul ecx
mov edi, edx
shr edi, 3
lea eax, [edi + edi*4]
add eax, eax
sub ecx, eax
mov ebp, ecx
lea ecx, [esp + 0x44dc]
push ecx
call fcn.004541e0
push 0x104
lea edx, [esp + 0x5114]
push 0
push edx
call fcn.004541e0
mov eax, dword [0x48bc18]
push eax
push 0x104
lea ecx, [esp + 0x44f4]
push ecx
push 0xbe1
push 0
call sub.hccutils.DLL_LoadSTRING
mov edx, dword [0x48bc18]
add esp, 0x4c
push edx
push 0x104
lea eax, [esp + 0x50ec]
push eax
push 0x1bb3
push 0
call sub.hccutils.DLL_LoadSTRING
movsx edx, byte [esp + 0x4ce8]
lea ecx, [esp + 0x44c8]
push ecx
push ebp
push edx
push edi
lea eax, [esp + 0x42d0]
push str._d_c_d___s
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
movsx edx, byte [esp + 0x4d00]
lea ecx, [esp + 0x5110]
push ecx
push ebp
push edx
push edi
lea eax, [esp + 0x47fc]
push str._d_c_d___s
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x44
lea ecx, [esp + 0x47c0]
mov eax, dword [esi + 0x9ca0]
mov edx, eax
shl edx, 4
sub edx, eax
push ecx
lea ecx, [esi + edx*4 + 0x9d14]
call fcn.00411b10
lea eax, [esp + 0x42ac]
push eax
mov eax, dword [esi + 0x9ca0]
mov ecx, eax
shl ecx, 4
sub ecx, eax
lea ecx, [esi + ecx*4 + 0xa0d4]
call fcn.00411b10
fld dword [esp + 0x58]
fnstcw word [esp + 0x14]
movzx eax, word [esp + 0x14]
or eax, 0xc00
mov dword [esp + 0x24], eax
fldcw word [esp + 0x24]
fistp qword [esp + 0x24]
mov eax, dword [esp + 0x24]
lea ecx, [eax + eax*4]
add ecx, ecx
mov eax, 0xcccccccd
mul ecx
fldcw word [esp + 0x14]
mov edi, edx
shr edi, 3
lea edx, [edi + edi*4]
add edx, edx
sub ecx, edx
mov ebp, ecx
movsx ecx, byte [esp + 0x4cd4]
lea eax, [esp + 0x44b4]
push eax
push ebp
push ecx
push edi
lea edx, [esp + 0x42bc]
push str._d_c_d___s
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
movsx ecx, byte [esp + 0x4cec]
lea eax, [esp + 0x50fc]
push eax
push ebp
push ecx
push edi
lea edx, [esp + 0x47e8]
push str._d_c_d___s
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x30
lea eax, [esp + 0x47c0]
push eax
mov eax, dword [esi + 0x9ca0]
mov ecx, eax
shl ecx, 4
sub ecx, eax
lea ecx, [esi + ecx*4 + 0x9d18]
call fcn.00411b10
mov eax, dword [esi + 0x9ca0]
mov ecx, eax
shl ecx, 4
lea edx, [esp + 0x42ac]
sub ecx, eax
push edx
lea ecx, [esi + ecx*4 + 0xa0d8]
call fcn.00411b10
xor ebp, ebp
jmp 0x42301b
fstp st(0)
mov eax, dword [esi + 0x9ca0]
mov ecx, eax
shl ecx, 4
lea edx, [esp + 0x45b8]
sub ecx, eax
push edx
lea ecx, [esi + ecx*4 + 0x9cfc]
call fcn.00411b10
mov eax, dword [esi + 0x9ca0]
mov ecx, eax
shl ecx, 4
lea edx, [esp + 0x45b8]
sub ecx, eax
push edx
lea ecx, [esi + ecx*4 + 0x9d00]
call fcn.00411b10
mov eax, dword [esi + 0x9ca0]
mov ecx, eax
shl ecx, 4
lea edx, [esp + 0x45b8]
sub ecx, eax
push edx
lea ecx, [esi + ecx*4 + 0x9d04]
call fcn.00411b10
mov eax, dword [esi + 0x9ca0]
mov ecx, eax
shl ecx, 4
lea edx, [esp + 0x43b0]
sub ecx, eax
push edx
lea ecx, [esi + ecx*4 + 0xa0bc]
call fcn.00411b10
mov eax, dword [esi + 0x9ca0]
mov ecx, eax
shl ecx, 4
lea edx, [esp + 0x43b0]
sub ecx, eax
push edx
lea ecx, [esi + ecx*4 + 0xa0c0]
call fcn.00411b10
mov eax, dword [esi + 0x9ca0]
mov ecx, eax
shl ecx, 4
lea edx, [esp + 0x43b0]
sub ecx, eax
push edx
lea ecx, [esi + ecx*4 + 0xa0c4]
call fcn.00411b10
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0x4c]
push ecx
mov dword [esp + 0x50], ebp
mov edx, dword [eax]
mov edx, dword [edx + 0x2c]
push ebx
push eax
call edx
test eax, eax
jl 0x423233
test byte [esp + 0x4c], 1
je 0x423130
lea eax, [esp + 0x4bd0]
push eax
mov eax, dword [esi + 0x9ca0]
mov ecx, eax
shl ecx, 4
sub ecx, eax
lea ecx, [esi + ecx*4 + 0x9cfc]
call fcn.00411b10
lea edx, [esp + 0x49c8]
jmp 0x423158
mov eax, dword [esi + 0x9ca0]
mov ecx, eax
shl ecx, 4
lea edx, [esp + 0x4dd8]
sub ecx, eax
push edx
lea ecx, [esi + ecx*4 + 0x9cfc]
call fcn.00411b10
lea edx, [esp + 0x4edc]
mov eax, dword [esi + 0x9ca0]
mov ecx, eax
shl ecx, 4
sub ecx, eax
push edx
lea ecx, [esi + ecx*4 + 0xa0bc]
call fcn.00411b10
mov eax, dword [esi + 0x9ca0]
mov ecx, eax
shl ecx, 4
sub ecx, eax
test byte [esp + 0x4c], 0x10
lea ecx, [esi + ecx*4 + 0xa0c0]
je 0x4231a3
lea edx, [esp + 0x49c8]
push edx
call fcn.00411b10
lea edx, [esp + 0x4bd0]
jmp 0x4231b7
lea edx, [esp + 0x4edc]
push edx
call fcn.00411b10
lea edx, [esp + 0x4dd8]
mov eax, dword [esi + 0x9ca0]
mov ecx, eax
shl ecx, 4
sub ecx, eax
push edx
lea ecx, [esi + ecx*4 + 0x9d00]
call fcn.00411b10
mov eax, dword [esi + 0x9ca0]
mov ecx, eax
shl ecx, 4
sub ecx, eax
test dword [esp + 0x4c], 0x100
lea ecx, [esi + ecx*4 + 0xa0c4]
je 0x423205
lea edx, [esp + 0x49c8]
push edx
call fcn.00411b10
lea edx, [esp + 0x4bd0]
jmp 0x423219
lea edx, [esp + 0x4edc]
push edx
call fcn.00411b10
lea edx, [esp + 0x4dd8]
mov eax, dword [esi + 0x9ca0]
mov ecx, eax
shl ecx, 4
sub ecx, eax
push edx
lea ecx, [esi + ecx*4 + 0x9d04]
call fcn.00411b10
mov eax, dword [esi + 0x9ca0]
mov ecx, eax
shl ecx, 4
lea edx, [esp + 0x45b8]
sub ecx, eax
push edx
lea ecx, [esi + ecx*4 + 0x9d20]
call fcn.00411b10
mov eax, dword [esi + 0x9ca0]
mov ecx, eax
shl ecx, 4
lea edx, [esp + 0x43b0]
sub ecx, eax
push edx
lea ecx, [esi + ecx*4 + 0xa0e0]
call fcn.00411b10
push 0x3e84
lea edx, [esp + 0x190]
push ebp
push edx
call fcn.004541e0
mov eax, dword [esp + 0x24]
mov ecx, dword [eax]
add esp, 0xc
lea edx, [esp + 0x18c]
push edx
push 0x3e84
push ebx
push eax
mov eax, dword [ecx + 0x28]
call eax
cmp eax, ebp
jl 0x423477
movzx ecx, word [esp + 0x18c]
push ecx
lea edx, [esp + 0x190]
push edx
call fcn.0041b5e0
xor ebp, ebp
add esp, 8
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x51f4], ebp
mov dword [esp + 0x44], ebp
lea ecx, [esp + 0x1c]
mov byte [esp + 0x51f4], 1
call fcn.0041b460
lea ecx, [esp + 0x44]
call fcn.0041b460
cmp word [esp + 0x18c], bp
jbe 0x423422
lea edi, [esp + 0x192]
jmp 0x423310
push 0x9c
lea eax, [esp + 0x44b8]
push 0
push eax
call fcn.004541e0
movzx eax, word [edi - 2]
movzx ecx, word [edi + 4]
movzx edx, word [edi]
or dword [esp + 0x44e8], 0x5c0000
mov dword [esp + 0x452c], eax
xor eax, eax
mov dword [esp + 0x4528], ecx
movzx ecx, word [edi + 2]
push eax
mov dword [esp + 0x4534], edx
lea edx, [esp + 0x4b]
mov dword [esp + 0x34], eax
mov dword [esp + 0x40], eax
mov byte [esp + 0x24], al
push edx
lea eax, [esp + 0x38]
mov dword [esp + 0x4540], ecx
push eax
lea ecx, [esp + 0x44cc]
push ecx
mov word [esp + 0x44f4], 0x9c
mov byte [esp + 0x57], 1
call fcn.00411bd0
push 0
lea edx, [esp + 0x34]
push edx
lea eax, [esp + 0x54]
push eax
lea ecx, [esp + 0x44dc]
push ecx
call fcn.00411bd0
mov edx, dword [esp + 0x50]
add esp, 0x2c
push edx
lea ecx, [esp + 0x20]
call fcn.0041b480
mov eax, dword [esp + 0x30]
push eax
lea ecx, [esp + 0x48]
call fcn.0041b480
mov eax, dword [esp + 0x24]
test eax, eax
je 0x4233e1
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov ecx, dword [esp + 0x30]
push ecx
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
movzx edx, word [esp + 0x18c]
sub edx, 1
cmp ebp, edx
jge 0x42340c
push 0x46c69c
lea ecx, [esp + 0x20]
call fcn.00421380
push 0x46c69c
lea ecx, [esp + 0x48]
call fcn.00421380
movzx eax, word [esp + 0x18c]
add ebp, 1
add edi, 0x10
cmp ebp, eax
jl 0x423310
mov eax, dword [esi + 0x9ca0]
mov edi, dword [esp + 0x1c]
mov ecx, eax
shl ecx, 4
sub ecx, eax
push edi
lea ecx, [esi + ecx*4 + 0xa0e0]
call fcn.004214b0
mov eax, dword [esi + 0x9ca0]
mov ebp, dword [esp + 0x44]
mov edx, eax
shl edx, 4
sub edx, eax
push ebp
lea ecx, [esi + edx*4 + 0x9d20]
call fcn.004214b0
push ebp
mov ebp, dword [sym.imp.OLEAUT32.dll_SysStringLen]
call ebp
push edi
mov dword [esp + 0x51f8], 0xffffffff
call ebp
xor ebp, ebp
mov eax, dword [esi + 0x9ca0]
mov ecx, eax
shl ecx, 4
sub ecx, eax
push 0x46c698
lea ecx, [esi + ecx*4 + 0x9d1c]
call fcn.00411b10
mov eax, dword [esi + 0x9ca0]
mov edx, eax
shl edx, 4
sub edx, eax
push 0x46c698
lea ecx, [esi + edx*4 + 0xa0dc]
call fcn.00411b10
mov eax, dword [esp + 0x18]
lea edx, [esp + 0x54]
push edx
mov dword [esp + 0x58], ebp
mov ecx, dword [eax]
push ebx
push eax
mov eax, dword [ecx + 0x10]
call eax
test eax, eax
jl 0x423509
mov eax, dword [esi + 0x9ca0]
mov ecx, dword [esp + 0x54]
mov edx, eax
shl edx, 4
sub edx, eax
push ecx
lea ecx, [esi + edx*4 + 0x9d1c]
call fcn.004214b0
mov eax, dword [esp + 0x54]
push eax
mov eax, dword [esi + 0x9ca0]
mov ecx, eax
shl ecx, 4
sub ecx, eax
lea ecx, [esi + ecx*4 + 0xa0dc]
call fcn.004214b0
mov eax, dword [esp + 0x54]
cmp eax, ebp
je 0x423518
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
add dword [esi + 0x9ca0], 1
mov edi, dword [esp + 0x3c]
add edi, 1
cmp edi, 0x10
mov dword [esp + 0x3c], edi
jl 0x422420
lea edx, [esp + 0x43b0]
lea edi, [esi + 0x9ca4]
push edx
mov ecx, edi
call fcn.00411b10
push 0x104
lea eax, [esp + 0x42b0]
push ebp
push eax
call fcn.004541e0
mov eax, dword [esp + 0x40]
add esp, 0xc
lea edx, [esp + 0x9c]
push edx
mov byte [esp + 0xa0], 0
mov dword [esp + 0xa8], ebp
mov dword [esp + 0xac], ebp
mov dword [esp + 0xa4], ebp
mov word [esp + 0xb6], bp
mov word [esp + 0xb4], bp
mov dword [esp + 0xb0], ebp
mov ecx, dword [eax]
push 0x18
push eax
mov eax, dword [ecx + 0x10]
call eax
test eax, eax
jl 0x423652
mov eax, dword [esp + 0xac]
add eax, 0xfffffffd
cmp eax, 8
ja case.default.0x4235bf
jmp dword [eax*4 + 0x424298]
mov ecx, dword [0x48bc18]
push ecx
push 0x104
lea edx, [esp + 0x42b4]
push edx
push 0xfee
jmp 0x423649
mov eax, dword [0x48bc18]
push eax
push 0x104
lea ecx, [esp + 0x42b4]
push ecx
push 0xfed
jmp 0x423649
mov edx, dword [0x48bc18]
push edx
push 0x104
lea eax, [esp + 0x42b4]
push eax
push 0xfec
jmp 0x423649
mov ecx, dword [0x48bc18]
push ecx
push 0x104
lea edx, [esp + 0x42b4]
push edx
push 0xfeb
jmp 0x423649
mov eax, dword [0x48bc18]
push eax
push 0x104
lea ecx, [esp + 0x42b4]
push ecx
push 0xfea
push ebp
call sub.hccutils.DLL_LoadSTRING
add esp, 0x14
lea edx, [esp + 0x42ac]
push edx
mov ecx, edi
call fcn.00411b10
lea eax, [esp + 0x43b0]
lea ebp, [esi + 0x9cac]
push eax
mov ecx, ebp
call fcn.00411b10
push 0x104
lea ecx, [esp + 0x4ad0]
push 0
push ecx
call fcn.004541e0
push 0x104
lea edx, [esp + 0x46cc]
push 0
push edx
call fcn.004541e0
push 0x94
lea eax, [esp + 0x406c]
push 0
push eax
call fcn.004541e0
mov edi, dword [sym.imp.KERNEL32.dll_GetVersionExA]
add esp, 0x24
lea ecx, [esp + 0x4050]
push ecx
mov dword [esp + 0x4054], 0x94
call edi
test eax, eax
je 0x4239e9
cmp dword [esp + 0x4054], 5
jae 0x42370e
cmp dword [esp + 0x4060], 2
jne 0x423963
mov edx, dword [0x48bc18]
push edx
push 0x104
lea eax, [esp + 0x4ad4]
push eax
push 0xc0e
jmp 0x423959
push 0x9c
lea ecx, [esp + 0x44b8]
push 0
push ecx
call fcn.004541e0
add esp, 0xc
lea edx, [esp + 0x44b4]
push edx
mov dword [esp + 0x44b8], 0x9c
call edi
test eax, eax
je 0x423963
cmp dword [esp + 0x44c4], 2
jne 0x423963
cmp dword [esp + 0x44b8], 5
jne 0x423963
mov eax, dword [esp + 0x44bc]
sub eax, 0
mov cl, byte [esp + 0x454e]
movzx ebx, word [esp + 0x454c]
mov byte [esp + 0x14], cl
je 0x4237ea
sub eax, 1
je 0x4237cf
sub eax, 1
jne 0x42380c
cmp cl, 1
jne 0x4237b4
mov eax, dword [0x48bc18]
push eax
push 0x104
lea ecx, [esp + 0x4ad4]
push ecx
push 0x1baf
push 0
call sub.hccutils.DLL_LoadSTRING
add esp, 0x14
jmp 0x423814
mov edx, dword [0x48bc18]
push edx
push 0x104
lea eax, [esp + 0x4ad4]
push eax
push 0x1b82
jmp 0x423802
mov ecx, dword [0x48bc18]
push ecx
push 0x104
lea edx, [esp + 0x4ad4]
push edx
push 0x1b81
jmp 0x423802
mov eax, dword [0x48bc18]
push eax
push 0x104
lea ecx, [esp + 0x4ad4]
push ecx
push 0x1b80
push 0
call sub.hccutils.DLL_LoadSTRING
add esp, 0x14
mov al, byte [esp + 0x14]
cmp al, 1
jne 0x423858
test ebx, 0x200
je 0x42383a
mov edx, dword [0x48bc18]
push edx
push 0x104
lea eax, [esp + 0x46c4]
push eax
push 0x1b83
jmp 0x423959
mov ecx, dword [0x48bc18]
push ecx
push 0x104
lea edx, [esp + 0x46c4]
push edx
push 0x1b84
jmp 0x423959
cmp al, 3
jne 0x423963
cmp dword [esp + 0x44b8], 5
jne 0x423963
mov eax, dword [esp + 0x44bc]
cmp eax, 2
jne 0x4238fe
test bl, bl
jns 0x42389f
mov eax, dword [0x48bc18]
push eax
push 0x104
lea ecx, [esp + 0x46c4]
push ecx
push 0x1b85
jmp 0x423959
test bl, 2
je 0x4238c2
mov edx, dword [0x48bc18]
push edx
push 0x104
lea eax, [esp + 0x46c4]
push eax
push 0x1b86
jmp 0x423959
cmp bx, 0x400
jne 0x4238e4
mov ecx, dword [0x48bc18]
push ecx
push 0x104
lea edx, [esp + 0x46c4]
push edx
push 0x1b87
jmp 0x423959
mov eax, dword [0x48bc18]
push eax
push 0x104
lea ecx, [esp + 0x46c4]
push ecx
push 0x1b88
jmp 0x423959
test eax, eax
jne 0x423963
test bl, bl
jns 0x423921
mov edx, dword [0x48bc18]
push edx
push 0x104
lea eax, [esp + 0x46c4]
push eax
push 0x1b89
jmp 0x423959
test bl, 2
je 0x423941
mov ecx, dword [0x48bc18]
push ecx
push 0x104
lea edx, [esp + 0x46c4]
push edx
push 0x1b8a
jmp 0x423959
mov eax, dword [0x48bc18]
push eax
push 0x104
lea ecx, [esp + 0x46c4]
push ecx
push 0x1b8b
push 0
call sub.hccutils.DLL_LoadSTRING
add esp, 0x14
push 0x104
lea edx, [esp + 0x42b0]
push 0
push edx
call fcn.004541e0
mov ecx, dword [esp + 0x4068]
push 0xa
lea eax, [esp + 0x4ff0]
push eax
and ecx, 0xffff
push ecx
call fcn.00455d2d
mov eax, dword [esp + 0x4070]
mov ecx, dword [esp + 0x406c]
lea edx, [esp + 0x4ff8]
push edx
push eax
push ecx
lea edx, [esp + 0x4088]
push edx
lea eax, [esp + 0x46e4]
push eax
lea ecx, [esp + 0x4af8]
push ecx
lea edx, [esp + 0x42dc]
push str._s__s___s___d._d._s_
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x38
lea eax, [esp + 0x42ac]
push eax
mov ecx, ebp
call fcn.00411b10
lea ecx, [esp + 0x43b0]
lea edi, [esi + 0x9cb0]
push ecx
mov ecx, edi
call fcn.00411b10
push 0x104
lea edx, [esp + 0x42b0]
push 0
push edx
call fcn.004541e0
add esp, 0xc
call dword [sym.imp.KERNEL32.dll_GetSystemDefaultLCID]
test eax, eax
je 0x423a4b
push 0x104
lea ecx, [esp + 0x42b0]
push ecx
push 0x1001
push eax
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoA]
test eax, eax
je 0x423a4b
lea edx, [esp + 0x42ac]
push edx
mov ecx, edi
call fcn.00411b10
lea eax, [esp + 0x43b0]
lea edi, [esi + 0x9cb4]
push eax
mov ecx, edi
call fcn.00411b10
push 0x104
lea ecx, [esp + 0x42b0]
push 0
push ecx
call fcn.004541e0
lea edx, [esp + 0x42b8]
push 0x104
push edx
call fcn.00428e90
add esp, 0x14
cmp eax, 1
jne 0x423a9d
lea eax, [esp + 0x42ac]
push eax
mov ecx, edi
call fcn.00411b10
lea ecx, [esp + 0x43b0]
lea ebp, [esi + 0x9cb8]
push ecx
mov ecx, ebp
call fcn.00411b10
push 0x40
lea edx, [esp + 0xe4]
push 0
push edx
call fcn.004541e0
add esp, 0xc
push str.Kernel32.dll
mov dword [esp + 0xe4], 0x40
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov edi, eax
test edi, edi
je 0x423b37
push str.GlobalMemoryStatusEx
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x423b30
lea ecx, [esp + 0xe0]
push ecx
call eax
cmp eax, 1
jne 0x423b30
mov eax, dword [esp + 0xec]
mov ecx, dword [esp + 0xe8]
lea edx, [esp + 0x42ac]
push edx
push eax
push ecx
call fcn.004112d0
add esp, 0xc
lea edx, [esp + 0x42ac]
push edx
mov ecx, ebp
call fcn.00411b10
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
lea eax, [esp + 0x43b0]
lea edi, [esi + 0x9cbc]
push eax
mov ecx, edi
call fcn.00411b10
lea ecx, [esp + 0x43b0]
lea ebp, [esi + 0x9cc4]
push ecx
mov ecx, ebp
call fcn.00411b10
lea edx, [esp + 0x43b0]
lea ebx, [esi + 0x9cc0]
push edx
mov ecx, ebx
call fcn.00411b10
xor eax, eax
lea edx, [esp + 0x64]
push edx
lea edx, [esp + 0x74]
push edx
mov dword [esp + 0x70], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax]
lea edx, [esp + 0x70]
push edx
push eax
mov eax, dword [ecx + 0x1c]
call eax
test eax, eax
jl 0x423c15
mov edx, dword [esp + 0x64]
lea ecx, [esp + 0x42ac]
push ecx
push 0
push edx
call fcn.004112d0
add esp, 0xc
lea eax, [esp + 0x42ac]
push eax
mov ecx, edi
call fcn.00411b10
mov edx, dword [esp + 0x68]
lea ecx, [esp + 0x42ac]
push ecx
push 0
push edx
call fcn.004112d0
add esp, 0xc
lea eax, [esp + 0x42ac]
push eax
mov ecx, ebp
call fcn.00411b10
mov edx, dword [esp + 0x70]
lea ecx, [esp + 0x42ac]
push ecx
push 0
push edx
call fcn.004112d0
add esp, 0xc
lea eax, [esp + 0x42ac]
push eax
mov ecx, ebx
call fcn.00411b10
lea ecx, [esp + 0x43b0]
lea edi, [esi + 0x9cc8]
push ecx
mov ecx, edi
call fcn.00411b10
xor eax, eax
lea edx, [esp + 0x78]
push edx
xor ebx, ebx
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], eax
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
cmp word [esp + 0x78], bx
jne 0x423e5e
push 0x46d1b4
lea ecx, [esp + 0x4014]
call fcn.00401b90
mov eax, dword [esp + 0x98]
cmp ax, 5
mov dword [esp + 0x51f4], 2
je 0x423cb3
cmp ax, 6
jne 0x423e1f
push 0x104
lea eax, [esp + 0x48c8]
push ebx
push eax
call fcn.004541e0
mov ecx, dword [0x48bc18]
push ecx
push 0x104
lea edx, [esp + 0x48d8]
push edx
push 0xc10
push ebx
call sub.hccutils.DLL_LoadSTRING
push 0x104
lea eax, [esp + 0x42d0]
push ebx
push eax
call fcn.004541e0
movzx ecx, word [esp + 0xc4]
mov ebp, dword [sym.imp.USER32.dll_wsprintfA]
push ecx
lea edx, [esp + 0x48f4]
push edx
lea eax, [esp + 0x42e0]
push eax
call ebp
add esp, 0x38
lea ecx, [esp + 0x42ac]
push ecx
lea ecx, [esp + 0x4014]
call fcn.00401c10
push 0x104
lea edx, [esp + 0x48c8]
push ebx
push edx
call fcn.004541e0
mov eax, dword [0x48bc18]
push eax
push 0x104
lea ecx, [esp + 0x48d8]
push ecx
push 0xc11
push ebx
call sub.hccutils.DLL_LoadSTRING
push 0x104
lea edx, [esp + 0x42d0]
push ebx
push edx
call fcn.004541e0
movzx eax, byte [esp + 0xc7]
push eax
lea ecx, [esp + 0x48f4]
push ecx
lea edx, [esp + 0x42e0]
push edx
call ebp
add esp, 0x38
lea eax, [esp + 0x42ac]
push eax
lea ecx, [esp + 0x4014]
call fcn.00401c10
push 0x104
lea ecx, [esp + 0x48c8]
push ebx
push ecx
call fcn.004541e0
mov edx, dword [0x48bc18]
push edx
push 0x104
lea eax, [esp + 0x48d8]
push eax
push 0xc12
push ebx
call sub.hccutils.DLL_LoadSTRING
push 0x104
lea ecx, [esp + 0x42d0]
push ebx
push ecx
call fcn.004541e0
movzx edx, byte [esp + 0xc6]
push edx
lea eax, [esp + 0x48f4]
push eax
lea ecx, [esp + 0x42e0]
push ecx
call ebp
add esp, 0x38
lea edx, [esp + 0x42ac]
push edx
lea ecx, [esp + 0x4014]
call fcn.00401c10
jmp 0x423e25
mov ebp, dword [sym.imp.USER32.dll_wsprintfA]
cmp dword [esp + 0x4028], 0x10
mov eax, dword [esp + 0x4014]
jae 0x423e3d
lea eax, [esp + 0x4014]
push eax
mov ecx, edi
call fcn.00411b10
lea ecx, [esp + 0x4010]
mov dword [esp + 0x51f4], 0xffffffff
call fcn.00401640
jmp 0x423e64
mov ebp, dword [sym.imp.USER32.dll_wsprintfA]
lea eax, [esp + 0x43b0]
lea edi, [esi + 0x9ccc]
push eax
mov ecx, edi
call fcn.00411b10
lea ecx, [esp + 0x40]
push ecx
push 0x20019
push ebx
push str.HARDWAREDESCRIPTIONSystemCentralProcessor0
push reloc.OLEAUT32.dll_SysReAllocString
mov dword [esp + 0x54], ebx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x424038
lea edx, [esp + 0x1c]
push edx
mov edx, dword [esp + 0x44]
lea eax, [esp + 0x34]
push eax
lea ecx, [esp + 0x44]
push ecx
push ebx
push str.MHz
push edx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x54], ebx
mov dword [esp + 0x34], 4
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x423f11
mov ebx, dword [esp + 0x30]
test ebx, ebx
je 0x423f11
push 0x104
push eax
lea eax, [esp + 0x42b4]
push eax
call fcn.004541e0
push ebx
lea ecx, [esp + 0x42bc]
push 0x46ca74
push ecx
call ebp
add esp, 0x18
lea edx, [esp + 0x42ac]
push edx
mov ecx, edi
call fcn.00411b10
cmp word [esp + 0x78], 0
je 0x42402b
mov ebx, 0x104
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x404c], 0xf
mov dword [esp + 0x4048], 0
mov byte [esp + 0x4038], 0
mov edi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
lea eax, [esp + 0x1c]
push eax
mov eax, dword [esp + 0x44]
lea ecx, [esp + 0x42b0]
push ecx
lea edx, [esp + 0x44]
push edx
push 0
push str.Identifier
push eax
mov dword [esp + 0x520c], 3
call edi
test eax, eax
jne 0x423f98
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0x42ac]
mov byte [esp + ecx + 0x42ac], al
push edx
lea ecx, [esp + 0x4038]
call fcn.00401c10
lea eax, [esp + 0x1c]
push eax
mov eax, dword [esp + 0x44]
lea ecx, [esp + 0x42b0]
push ecx
lea edx, [esp + 0x44]
push edx
push 0
push str.VendorIdentifier
push eax
mov dword [esp + 0x34], ebx
call edi
test eax, eax
jne 0x423ff0
mov ecx, dword [esp + 0x1c]
mov byte [esp + ecx + 0x42ac], al
push 0x46c9ec
lea ecx, [esp + 0x4038]
call fcn.00401c10
lea edx, [esp + 0x42ac]
push edx
lea ecx, [esp + 0x4038]
call fcn.00401c10
cmp dword [esp + 0x404c], 0x10
mov eax, dword [esp + 0x4038]
jae 0x424008
lea eax, [esp + 0x4038]
push eax
lea ecx, [esi + 0x9cc8]
call fcn.00411b10
lea ecx, [esp + 0x4034]
mov dword [esp + 0x51f4], 0xffffffff
call fcn.00401640
mov eax, dword [esp + 0x40]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor ebx, ebx
lea ecx, [esp + 0x40e4]
call fcn.00401c40
mov dword [esp + 0x51f4], 4
mov dword [esp + 0x14], ebx
lea ecx, [esp + 0x43b0]
lea edi, [esi + 0x9ca8]
push ecx
mov ecx, edi
mov byte [esp + 0x51f8], 5
call fcn.00411b10
lea edx, [esp + 0x14]
push edx
push ebx
lea ecx, [esp + 0x40ec]
call fcn.00421790
cmp eax, 1
jne 0x424093
lea eax, [esp + 0x14]
push eax
mov ecx, edi
call fcn.00421480
lea ecx, [esp + 0x43b0]
lea edi, [esi + 0x9cd0]
push ecx
mov ecx, edi
call fcn.00411b10
lea edx, [esp + 0x14]
push edx
push ebx
lea ecx, [esp + 0x40ec]
call fcn.00421570
cmp eax, 1
jne 0x4240cb
lea eax, [esp + 0x14]
push eax
mov ecx, edi
call fcn.00421480
lea ecx, [esp + 0x43b0]
lea edi, [esi + 0x9cd4]
push ecx
mov ecx, edi
call fcn.00411b10
lea edx, [esp + 0x14]
push edx
push ebx
lea ecx, [esp + 0x40ec]
call fcn.004215d0
cmp eax, 1
jne 0x424103
lea eax, [esp + 0x14]
push eax
mov ecx, edi
call fcn.00421480
lea ecx, [esp + 0x43b0]
lea edi, [esi + 0x9cd8]
push ecx
mov ecx, edi
call fcn.00411b10
lea edx, [esp + 0x14]
push edx
push ebx
lea ecx, [esp + 0x40ec]
call fcn.00421640
cmp eax, 1
jne 0x42413b
lea eax, [esp + 0x14]
push eax
mov ecx, edi
call fcn.00421480
lea ecx, [esp + 0x43b0]
lea edi, [esi + 0x9cdc]
push ecx
mov ecx, edi
call fcn.00411b10
lea edx, [esp + 0x14]
push edx
push ebx
lea ecx, [esp + 0x40ec]
call fcn.004216b0
cmp eax, 1
jne 0x424173
lea eax, [esp + 0x14]
push eax
mov ecx, edi
call fcn.00421480
lea ecx, [esp + 0x43b0]
lea edi, [esi + 0x9ce4]
push ecx
mov ecx, edi
call fcn.00411b10
lea edx, [esp + 0x14]
push edx
push ebx
lea ecx, [esp + 0x40ec]
call fcn.00421720
cmp eax, 1
jne 0x4241ab
lea eax, [esp + 0x14]
push eax
mov ecx, edi
call fcn.00421480
lea ecx, [esp + 0x43b0]
push ecx
lea ecx, [esi + 0x9cec]
call fcn.00411b10
mov eax, dword [esp + 0x34]
lea ecx, [esp + 0x5c]
mov dword [esp + 0x5c], ebx
mov edx, dword [eax]
mov edx, dword [edx + 0x14]
push ecx
push eax
call edx
cmp eax, ebx
jl 0x4241e7
mov eax, dword [esp + 0x5c]
push eax
lea ecx, [esi + 0x9ce0]
call fcn.004214b0
mov eax, dword [esp + 0x5c]
cmp eax, ebx
je 0x4241f6
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [esp + 0x34]
mov ecx, dword [eax]
lea edx, [esi + 0xa470]
push edx
push 0x60
push eax
mov eax, dword [ecx + 0x30]
call eax
lea ecx, [esp + 0x14]
call fcn.00401a30
lea ecx, [esp + 0x40e4]
mov dword [esp + 0x51f4], 0xffffffff
call fcn.00401670
xor ebp, ebp
mov eax, dword [esp + 0x34]
cmp eax, ebp
je 0x424241
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [esp + 0x34], ebp
mov eax, dword [esp + 0x2c]
cmp eax, ebp
je 0x424255
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [esp + 0x2c], ebp
mov eax, dword [esp + 0x18]
cmp eax, ebp
je 0x424265
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [esi + 0x9c98], ebp
mov ecx, dword [esp + 0x51ec]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x51d4]
xor ecx, esp
call fcn.00454162
add esp, 0x51e4
ret 4