Function at 0x407a50
Capabilities:
Terminate process

Disassembly:
push 0xffffffffffffffff
mov eax, dword fs:[0]
push 0x435b56
push eax
mov eax, 0x24b4
mov dword fs:[0], esp
call fcn.00435300
push ebx
push ebp
push esi
push edi
push 0x2000000
push 0x8000
call dword [sym.imp.GRBase.dll_unsigned_char____cdecl_CGoRunSoftware::Memory::Alloc_long_int__long_int_]
mov ebp, eax
add esp, 8
mov dword [esp + 0x34], ebp
xor ebx, ebx
lea ecx, [esp + 0x155a]
mov dword [esp + 0x24cc], ebx
call fcn.004083d0
lea eax, [esp + 0x14]
push ebx
push eax
mov byte [esp + 0x1561], 1
mov dword [esp + 0x155c], ebx
mov word [esp + 0x15a4], bx
mov byte [esp + 0x15aa], bl
call fcn.00408280
mov eax, dword [eax]
lea ecx, [esp + 0x240]
push 0x228c
push ecx
push eax
mov byte [esp + 0x24e0], 1
call dword [sym.imp.GRBase.dll_long_int___cdecl_CGoRunSoftware::ReadMem_char_const___void___long_int_]
mov edi, dword [sym.imp.GRBase.dll_public:_void___thiscall_CGoRunSoftware::GString::destructor_void_]
add esp, 0x14
lea ecx, [esp + 0x14]
mov esi, eax
mov byte [esp + 0x24cc], bl
call edi
mov eax, dword [ebp + 0x12e8]
mov ecx, dword [ebp + 0x2288]
push eax
push ecx
lea edx, [esp + 0x240]
push 0x228c
push edx
call fcn.00408390
add esp, 0x10
mov dword [esp + 0x1b34], esi
mov dword [0x453220], ebx
call fcn.004079f0
mov eax, dword [0x453220]
mov dword [esp + 0x238], 0xa26d77de
cmp eax, ebx
jne 0x407fcd
cmp dword [esp + 0x1b34], 0x64
jbe 0x407bb4
mov eax, dword [ebp + 0x131c]
mov ecx, dword [esp + 0x1554]
cmp eax, ecx
je 0x407b8e
push ebx
push ebx
push ecx
push eax
lea eax, [esp + 0x48]
push 0x4514c8
push eax
mov byte [esp + 0x50], bl
call fcn.004081d0
add esp, 0x10
push eax
call dword [sym.imp.GRBase.dll_void___cdecl_CGoRunSoftware::SWarn_char_const___enum_CGoRunSoftware::EError__char_const__]
add esp, 0xc
jmp 0x407bb4
mov ecx, dword [esp + 0x19a8]
mov eax, dword [ebp + 0x12e8]
cmp ecx, eax
jne 0x407bb4
mov edx, dword [esp + 0x19ac]
mov eax, dword [ebp + 0x2288]
cmp edx, eax
mov byte [esp + 0x13], bl
je 0x407bb9
mov byte [esp + 0x13], 1
mov al, byte [esp + 0x13]
mov esi, 0x7fffffff
cmp al, bl
jne 0x407d62
cmp dword [esp + 0x250], 0x1ee62800
je 0x407f6e
cmp dword [ebp + 0x2288], ebx
jbe 0x407f6e
push 0x10
call fcn.00407920
mov ecx, dword [esp + 0x658]
mov esi, eax
mov eax, dword [esp + 0x24c0]
add esp, 4
sub eax, ecx
add esi, eax
call dword [sym.imp.GRBase.dll_long_int___cdecl_CGoRunSoftware::Time::CurrentS_void_]
cmp eax, esi
jae 0x407c16
xor esi, esi
jmp 0x407cb2
call dword [sym.imp.GRBase.dll_long_int___cdecl_CGoRunSoftware::Time::CurrentS_void_]
mov edx, dword [esp + 0x24bc]
mov ecx, dword [esp + 0x250]
sub eax, edx
cmp eax, ecx
jbe 0x407c66
call dword [sym.imp.GRBase.dll_long_int___cdecl_CGoRunSoftware::Time::CurrentS_void_]
sub eax, esi
cmp eax, 0x3f480
jae 0x407c62
call dword [sym.imp.GRBase.dll_long_int___cdecl_CGoRunSoftware::Time::CurrentS_void_]
mov ecx, dword [esp + 0x654]
mov edx, dword [esp + 0x24bc]
sub ecx, edx
add eax, ecx
push eax
push 0x10
call fcn.00407980
add esp, 8
xor esi, esi
jmp 0x407cb2
call dword [sym.imp.GRBase.dll_long_int___cdecl_CGoRunSoftware::Time::CurrentS_void_]
mov edx, dword [esp + 0x24bc]
mov ecx, dword [esp + 0x250]
lea esi, [edx + ecx]
sub esi, eax
cmp esi, ebx
jle 0x407ca6
call dword [sym.imp.GRBase.dll_long_int___cdecl_CGoRunSoftware::Time::CurrentS_void_]
mov edx, dword [esp + 0x654]
mov ecx, dword [esp + 0x24bc]
sub edx, ecx
add eax, edx
push eax
push 0x10
call fcn.00407980
add esp, 8
cmp esi, 0x93a80
jg 0x407d5a
push 0x4511f8
push 0x4514c0
lea eax, [esp + 0x20]
push str.GRCAD
push eax
call dword [sym.imp.GRBase.dll_class_CGoRunSoftware::GString___cdecl_CGoRunSoftware::GetGRCADProfileString_char_const___char_const___char_const__]
add esp, 0x10
mov eax, dword [eax]
lea ecx, [esp + 0x14]
push eax
mov byte [esp + 0x24d0], 2
call sub.MFC42.DLL_CString::CString_1
lea ecx, [esp + 0x18]
mov byte [esp + 0x24cc], 4
call edi
mov eax, 0x91a2b3c5
imul esi
add edx, esi
mov eax, 0x2aaaaaab
sar edx, 0xb
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
mov ecx, dword [esp + 0x14]
imul edx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
push edx
lea edx, [esp + 0x20]
push ecx
push edx
call dword [sym.imp.GRBase.dll_class_CGoRunSoftware::K256GString___cdecl_CGoRunSoftware::StrPrintf_char_const__]
mov eax, dword [eax]
push ebx
push ebx
push eax
mov byte [esp + 0x24e4], 5
call dword [sym.imp.GRBase.dll_void___cdecl_CGoRunSoftware::SWarn_char_const___enum_CGoRunSoftware::EError__char_const__]
add esp, 0x18
lea ecx, [esp + 0x1c]
mov byte [esp + 0x24cc], 4
call edi
lea ecx, [esp + 0x14]
mov byte [esp + 0x24cc], bl
call fcn.00434b38
cmp esi, ebx
jg 0x407f6e
mov eax, dword [ebp + 0x2288]
mov dword [esp + 0x24], ebx
cmp eax, ebx
mov dword [esp + 0x28], 0x14
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ebx
je 0x407e15
lea eax, [esp + 0x644]
lea ecx, [esp + 0x1c]
push eax
lea edx, [esp + 0x1c]
push ecx
lea eax, [esp + 0x30]
push edx
lea ecx, [esp + 0x30]
push eax
lea edx, [esp + 0x3c]
push ecx
lea eax, [esp + 0x44]
push edx
push eax
push 0x45321c
push 5
call fcn.00433f80
add esp, 0x24
test ax, ax
je 0x407e15
mov ecx, dword [sym.imp.GRBase.dll_bool_CGoRunSoftware::g_bEnglish]
mov al, byte [ecx]
cmp al, bl
mov eax, str.Bad_license.dat__dog_ID
jne 0x407dd4
mov eax, 0x451488
push eax
push 0x451480
lea edx, [esp + 0x1c]
push str.GRCAD
push edx
call dword [sym.imp.GRBase.dll_class_CGoRunSoftware::GString___cdecl_CGoRunSoftware::GetGRCADProfileString_char_const___char_const___char_const__]
mov eax, dword [eax]
push ebx
push ebx
push eax
mov byte [esp + 0x24e8], 6
call dword [sym.imp.GRBase.dll_void___cdecl_CGoRunSoftware::SWarn_char_const___enum_CGoRunSoftware::EError__char_const__]
add esp, 0x1c
lea ecx, [esp + 0x14]
mov byte [esp + 0x24cc], bl
call edi
push 1
call dword [sym.imp.MSVCRT.dll_exit]
call dword [sym.imp.GRBase.dll_long_int___cdecl_CGoRunSoftware::Time::CurrentS_void_]
mov ecx, dword [ebp + 0x2288]
mov dword [ebp + 0x2284], eax
push ecx
push eax
push 0x2284
push ebp
call fcn.00408350
lea edx, [esp + 0x24]
push 1
push edx
call fcn.00408280
mov eax, dword [eax]
push ebx
push 0x228c
push ebp
push eax
mov byte [esp + 0x24f4], 7
call dword [sym.imp.GRBase.dll_bool___cdecl_CGoRunSoftware::SaveMem_char_const___void_const___long_int__int_]
add esp, 0x28
lea ecx, [esp + 0x14]
mov byte [esp + 0x24cc], bl
call edi
mov ecx, ebp
call fcn.004083f0
cmp esi, 0x93a80
jg 0x407f0f
push 0x4511f8
push 0x4514c0
lea eax, [esp + 0x1c]
push str.GRCAD
push eax
call dword [sym.imp.GRBase.dll_class_CGoRunSoftware::GString___cdecl_CGoRunSoftware::GetGRCADProfileString_char_const___char_const___char_const__]
mov eax, 0x91a2b3c5
mov byte [esp + 0x24dc], 8
imul esi
add edx, esi
mov eax, 0x2aaaaaab
sar edx, 0xb
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
mov ecx, dword [esp + 0x24]
imul edx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
push edx
lea edx, [esp + 0x34]
push ecx
push edx
call dword [sym.imp.GRBase.dll_class_CGoRunSoftware::K256GString___cdecl_CGoRunSoftware::StrPrintf_char_const__]
mov eax, dword [eax]
push ebx
push ebx
push eax
mov byte [esp + 0x24f4], 9
call dword [sym.imp.GRBase.dll_void___cdecl_CGoRunSoftware::SWarn_char_const___enum_CGoRunSoftware::EError__char_const__]
add esp, 0x28
lea ecx, [esp + 0x20]
mov byte [esp + 0x24cc], 8
call edi
cmp esi, ebx
jg 0x407f02
push 1
call dword [sym.imp.MSVCRT.dll_exit]
lea ecx, [esp + 0x14]
mov byte [esp + 0x24cc], bl
call edi
cmp dword [esp + 0x1b34], ebx
jbe 0x407f6e
mov eax, dword [sym.imp.GRBase.dll_bool_CGoRunSoftware::g_bEnglish]
mov cl, byte [eax]
mov eax, str.Bad_license.dat_file
cmp cl, bl
jne 0x407f2d
mov eax, str.license.dat
push eax
push 0x451480
lea ecx, [esp + 0x28]
push str.GRCAD
push ecx
call dword [sym.imp.GRBase.dll_class_CGoRunSoftware::GString___cdecl_CGoRunSoftware::GetGRCADProfileString_char_const___char_const___char_const__]
mov eax, dword [eax]
push ebx
push ebx
push eax
mov byte [esp + 0x24e8], 0xa
call dword [sym.imp.GRBase.dll_void___cdecl_CGoRunSoftware::SWarn_char_const___enum_CGoRunSoftware::EError__char_const__]
add esp, 0x1c
lea ecx, [esp + 0x20]
mov byte [esp + 0x24cc], bl
call edi
push 1
call dword [sym.imp.MSVCRT.dll_exit]
cmp dword [0x453220], ebx
jne 0x407fcd
cmp dword [esp + 0x1b34], ebx
jbe 0x407f9c
cmp byte [esp + 0x13], bl
je 0x407f8d
push 1
call dword [sym.imp.MSVCRT.dll_exit]
mov edx, dword [esp + 0x288]
mov dword [0x453220], edx
jmp 0x407fc2
cmp dword [ebp + 0x2288], ebx
jne 0x407fb8
mov eax, dword [ebp + 0x131c]
mov dword [0x453220], 0x10000000
cmp eax, ebx
jbe 0x407fc2
mov dword [0x453220], 2
mov dword [esp + 0x238], 0xa26d77de
cmp dword [ebp + 0x2288], ebx
jbe 0x407fec
mov eax, dword [sym.imp.GRBase.dll_enum_CGoRunSoftware::EApplication_CGoRunSoftware::eApplicationType]
cmp dword [eax], ebx
jne 0x407fec
mov eax, dword [0x453220]
or al, 4
mov dword [0x453220], eax
jmp 0x407ffa
cmp dword [ebp + 0x1778], ebx
jne 0x407ffa
mov dword [0x453220], ebx
cmp ebp, ebx
mov dword [esp + 0x24cc], 0xffffffff
je 0x408013
push ebp
call dword [sym.imp.GRBase.dll_void___cdecl_CGoRunSoftware::Memory::Free_void__]
add esp, 4
mov ecx, dword [esp + 0x24c4]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x24c0
ret