Function at 0x459d70
Capabilities:
Set socket configuration

Disassembly:
push 0xffffffffffffffff
mov eax, dword fs:[0]
push 0x4b62b6
push eax
mov eax, 0x2d2c
mov dword fs:[0], esp
call fcn.0047a5c0
push ebx
push ebp
mov ebp, ecx
push esi
push edi
mov eax, dword [ebp + 0xf70]
mov byte [ebp + 0xc14], 0
test eax, eax
je 0x459dba
push eax
call fcn.0045cd40
mov byte [ebp + 0xc14], 1
mov al, 1
jmp 0x45ad63
mov ebx, dword [esp + 0x2d5c]
test ebx, ebx
je 0x459dc8
mov byte [ebx], 0
mov eax, dword [esp + 0x2d58]
test eax, eax
jne 0x459dd8
mov eax, str.license.key
push eax
mov eax, dword [esp + 0x2d50]
push eax
lea ecx, [esp + 0x540]
push 0x4d1784
push ecx
call dword [sym.imp.MSVCRT.dll_sprintf]
lea edx, [esp + 0x548]
push edx
call fcn.004674e0
add esp, 0x14
test al, al
jne 0x459edc
lea eax, [esp + 0x538]
lea ecx, [esp + 0x138]
push eax
push ecx
call fcn.00463740
mov edi, str..key
or ecx, 0xffffffff
xor eax, eax
add esp, 8
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x138]
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x1c]
call sub.MFC42.DLL_CFileFind::CFileFind
lea eax, [esp + 0x138]
push 0
push eax
lea ecx, [esp + 0x24]
mov dword [esp + 0x2d4c], 0
call sub.MFC42.DLL_CFileFind::FindFile
test eax, eax
je 0x459ec8
lea ecx, [esp + 0x1c]
call sub.MFC42.DLL_CFileFind::FindNextFileA
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x20]
call sub.MFC42.DLL_CFileFind::GetFilePath
mov eax, dword [eax]
push 0x802
lea edx, [esp + 0x53c]
push eax
push edx
mov byte [esp + 0x2d50], 1
call fcn.004625f0
add esp, 0xc
lea ecx, [esp + 0x14]
mov byte [esp + 0x2d44], 0
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x1c]
mov dword [esp + 0x2d44], 0xffffffff
call fcn.0047a2ca
mov eax, dword [esp + 0x2d50]
mov dword [esp + 0x18], 0
mov edi, eax
and edi, 0xffff
mov dword [esp + 0x14], edi
sub edi, 0x130a
neg edi
sbb edi, edi
and edi, 0x17
add edi, 7
test ebx, ebx
je 0x459f19
mov byte [ebp + 0xf60], 1
mov byte [ebp + 0xc16], 1
mov ecx, dword [esp + 0x2d54]
mov ebx, dword [esp + 0x2d64]
and eax, 0xffff0000
mov dword [ebp + 0xf64], eax
setne al
mov byte [ebp + 0xf6d], al
mov dword [ecx], 0
test ebx, ebx
je 0x459f7b
push 0x7fffffff
push 0x80000000
push 0
push str.STARTCOUNT
push str.GLOBAL
mov ecx, ebx
call fcn.00454130
mov dword [ebp + 0xc18], eax
inc eax
push eax
push str.STARTCOUNT
push str.GLOBAL
mov ecx, ebx
call fcn.00454320
mov al, byte [ebp + 0xf6d]
test al, al
je 0x459f94
mov al, byte [ebp + 0xc16]
mov byte [esp + 0x13], 1
test al, al
jne 0x459f99
mov byte [esp + 0x13], 0
lea esi, [ebp + 0xc15]
lea eax, [ebp + 0x40d]
push esi
push eax
lea edx, [esp + 0x540]
lea ecx, [ebp + 0xc]
push 0x400
push edx
push ecx
call fcn.004625f0
add esp, 0xc
push eax
call fcn.00479930
add esp, 0xc
test al, al
je 0x45a50f
lea eax, [ebp + 0x5e8]
push str._HASP_
push eax
mov byte [ebp + 0x64a], 0
call fcn.00462910
mov esi, eax
add esp, 8
test esi, esi
je 0x45a034
mov byte [ebp + 0x40c], 1
mov byte [esi], 0
dec esi
mov ecx, esi
sub ecx, ebp
sub ecx, 0x40d
cmp ecx, 0x1db
jle 0x45a034
movsx edx, byte [esi]
push edx
call dword [sym.imp.MSVCRT.dll_isspace]
add esp, 4
test eax, eax
je 0x45a034
mov byte [esi], 0
dec esi
mov eax, esi
sub eax, ebp
sub eax, 0x40d
cmp eax, 0x1db
jg 0x45a00f
mov cl, byte [ebp + 0x40d]
mov dl, byte [ebp + 0x40e]
mov byte [ebp + 6], cl
mov ecx, ebp
mov byte [ebp + 7], dl
call fcn.0045b170
test eax, eax
je 0x45a058
mov byte [ebp + 0x40c], 0
mov esi, dword [esp + 0x14]
lea eax, [esi - 0x1301]
cmp eax, 0xc
ja case.0x45a073.4870
xor ecx, ecx
mov cl, byte [eax + 0x45ad98]
jmp dword [ecx*4 + 0x45ad80]
mov eax, str.CIMCO_Edit
jmp 0x45a09b
mov eax, str.CIMCO_DNC_Max_Server
jmp 0x45a09b
mov eax, str.CIMCO_NC_Base_Server
jmp 0x45a09b
mov eax, str.CIMCO_Network_License_Server
jmp 0x45a09b
mov eax, str.CIMCO_MDC_Max_Client
test eax, eax
mov dword [esp + 0x14], eax
je case.0x45a073.4870
mov ecx, ebp
call fcn.0045add0
test eax, eax
jne case.0x45a073.4870
mov byte [esp + 0x13], al
lea edx, [esp + 0x13]
lea eax, [esp + 0x138]
push edx
push eax
call fcn.00466e40
mov al, byte [esp + 0x1b]
add esp, 8
test al, al
je 0x45a0f3
mov edx, dword [0x4fa100]
mov ecx, dword [esp + 0x14]
push ecx
lea ecx, [esp + 0x13c]
mov eax, dword [edx + 0x968]
push eax
push ecx
jmp 0x45a10c
mov eax, dword [0x4fa100]
mov edx, dword [esp + 0x14]
push edx
lea edx, [esp + 0x13c]
mov ecx, dword [eax + 0x96c]
push ecx
push edx
call dword [sym.imp.MSVCRT.dll_sprintf]
mov al, byte [ebp + 0xc16]
add esp, 0xc
test al, al
je 0x45a14f
lea edi, [esp + 0x138]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, dword [esp + 0x2d5c]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
xor al, al
rep movsb byte es:[edi], byte [esi]
jmp 0x45ad63
mov ecx, dword [0x4fa100]
push 0x2010
lea eax, [esp + 0x13c]
mov edx, dword [ecx + 0x504]
push edx
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
xor al, al
jmp 0x45ad63
push esi
mov ecx, ebp
call fcn.0045bd80
test al, al
je 0x45a2a3
call fcn.0045bdc0
test eax, eax
je 0x45a288
mov ecx, dword [esp + 0x2d54]
mov byte [esp + 0x13], 0
mov dword [ecx], 0
mov cl, byte [ebp + 0xc16]
test cl, cl
je 0x45a210
dec eax
je 0x45a203
dec eax
je 0x45a1c5
mov edx, dword [0x4fa100]
mov edi, dword [edx + 0x9ec]
jmp 0x45a1d0
mov eax, dword [0x4fa100]
mov edi, dword [eax + 0x9e0]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, dword [esp + 0x2d5c]
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov al, byte [esp + 0x13]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x45ad59
mov eax, dword [0x4fa100]
mov edi, dword [eax + 0x9e4]
jmp 0x45a1d0
dec eax
je 0x45a233
mov edx, dword [0x4fa100]
dec eax
lea ebx, [esp + 0x138]
je 0x45a22b
mov edi, dword [edx + 0x9ec]
jmp 0x45a246
mov edi, dword [edx + 0x9e0]
jmp 0x45a246
mov edx, dword [0x4fa100]
lea ebx, [esp + 0x138]
mov edi, dword [edx + 0x9e4]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 0x2010
mov eax, ecx
mov esi, edi
mov edi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [edx + 0x504]
lea edx, [esp + 0x13c]
push ecx
push edx
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
mov al, byte [esp + 0x13]
jmp 0x45ad59
mov eax, dword [esp + 0x2d54]
mov byte [esp + 0x13], 1
mov dword [eax], 0
mov al, byte [esp + 0x13]
jmp 0x45ad59
mov ecx, ebp
call fcn.0045bce0
test al, al
je 0x45a32b
push 0
push ebx
mov ecx, ebp
call fcn.0045bb50
test eax, eax
je 0x45a2ca
mov byte [esp + 0x13], 1
mov al, byte [esp + 0x13]
jmp 0x45ad59
mov eax, dword [esp + 0x2d4c]
push 0
lea ecx, [esp + 0xd40]
push 0x5a
lea edx, [esp + 0x20]
push ecx
push edx
push 1
push esi
push eax
mov ecx, ebp
call fcn.0045d2a0
test al, al
jne 0x45a2bc
mov ecx, dword [esp + 0x2d54]
mov byte [esp + 0x13], al
push 0x2010
mov dword [ecx], 0
mov eax, dword [0x4fa100]
mov edx, dword [eax + 0x504]
mov eax, dword [eax + 0x960]
push edx
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
mov al, byte [esp + 0x13]
jmp 0x45ad59
mov ecx, ebp
call fcn.0045bd30
test al, al
je 0x45a35d
push 0
push ebx
mov ecx, ebp
call fcn.0045bcc0
mov ecx, dword [esp + 0x2d54]
test eax, eax
setne byte [esp + 0x13]
mov al, byte [esp + 0x13]
mov dword [ecx], 0
jmp 0x45ad59
mov ecx, ebp
call fcn.0045b170
test eax, eax
je 0x45a405
mov edx, dword [esp + 0x2d5c]
mov ecx, dword [esp + 0x2d4c]
push 0
push 0x1e
lea eax, [esp + 0x20]
push edx
push eax
push 1
push esi
push ecx
mov ecx, ebp
call fcn.0045d2a0
mov byte [esp + 0x13], al
mov eax, dword [esp + 0x18]
test eax, eax
je 0x45a3cf
lea eax, [ebp + 0xc15]
lea edx, [esp + 0x538]
push eax
lea eax, [ebp + 0x40d]
push eax
push 0x400
lea eax, [ebp + 0xc]
push edx
push eax
call fcn.004625f0
add esp, 0xc
push eax
call fcn.00479930
add esp, 0xc
test al, al
jne 0x45a3ea
mov ecx, ebp
call fcn.0045b170
mov ecx, dword [esp + 0x2d54]
cmp eax, 7
setle al
and eax, 0xff
mov dword [ecx], eax
mov al, byte [ebp + 0x40e]
mov dl, byte [ebp + 0x40d]
mov byte [ebp + 7], al
mov al, byte [esp + 0x13]
mov byte [ebp + 6], dl
jmp 0x45ad59
mov ecx, ebp
call fcn.0045b1f0
test eax, eax
je 0x45a4ae
mov ecx, dword [esp + 0x2d5c]
mov eax, dword [esp + 0x2d4c]
push 0
push 0x1e
lea edx, [esp + 0x20]
push ecx
push edx
push 1
push esi
push eax
mov ecx, ebp
call fcn.0045d2a0
mov byte [esp + 0x13], al
mov eax, dword [esp + 0x18]
test eax, eax
je 0x45a477
lea eax, [ebp + 0xc15]
lea ecx, [esp + 0x538]
push eax
lea eax, [ebp + 0x40d]
push eax
push 0x400
lea eax, [ebp + 0xc]
push ecx
push eax
call fcn.004625f0
add esp, 0xc
push eax
call fcn.00479930
add esp, 0xc
test al, al
jne 0x45a493
mov ecx, ebp
call fcn.0045b1f0
cmp eax, 0x1e
mov eax, dword [esp + 0x2d54]
setle dl
and edx, 0xff
mov dword [eax], edx
mov cl, byte [ebp + 0x40d]
mov dl, byte [ebp + 0x40e]
mov al, byte [esp + 0x13]
mov byte [ebp + 6], cl
mov byte [ebp + 7], dl
jmp 0x45ad59
mov al, byte [esp + 0x2d60]
test al, al
je 0x45a4c7
mov byte [esp + 0x13], 1
mov al, byte [esp + 0x13]
jmp 0x45ad59
mov eax, dword [esp + 0x2d5c]
mov ebx, dword [esp + 0x2d4c]
push eax
push ebx
push esi
mov ecx, ebp
call fcn.0045b3f0
test al, al
mov byte [esp + 0x13], al
jne 0x45a506
mov ecx, dword [esp + 0x2d5c]
push 0
push edi
lea edx, [esp + 0x20]
push ecx
push edx
push 1
push esi
push ebx
mov ecx, ebp
call fcn.0045d2a0
mov byte [esp + 0x13], al
mov al, byte [esp + 0x13]
jmp 0x45ad59
cmp byte [esi], 0
je 0x45a5a1
mov al, byte [ebp + 0xc16]
test al, al
je 0x45a56a
mov ecx, dword [0x4fa100]
xor eax, eax
mov edx, dword [ecx + 0x9b8]
or ecx, 0xffffffff
push edx
mov edx, dword [esp + 0x2d60]
mov edi, edx
push 0x4d423c
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, edx
push ecx
call dword [sym.imp.MSVCRT.dll_sprintf]
mov eax, dword [esp + 0x2d60]
add esp, 0xc
mov byte [esp + 0x13], 0
mov dword [eax], 0
jmp 0x45ad5f
mov eax, dword [0x4fa100]
push 0x2010
mov ecx, dword [eax + 0x504]
mov edx, dword [eax + 0x9b8]
push ecx
push edx
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
mov eax, dword [esp + 0x2d54]
mov byte [esp + 0x13], 0
mov dword [eax], 0
jmp 0x45ad5f
cmp dword [esp + 0x14], 0x130a
je 0x45a9b3
mov cl, byte [0x4d7690]
xor eax, eax
mov byte [esp + 0x38], cl
mov ecx, 0x3f
lea edi, [esp + 0x39]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, dword [ebp + 0xf64]
test eax, eax
je 0x45aa98
test ebx, ebx
je 0x45aa98
mov edx, dword [esp + 0x14]
mov ecx, ebp
push edx
call fcn.0045d030
lea eax, [esp + 0x38]
push 0x100
push eax
push str.LICENSEADAPTER
push str.LICENSE
mov ecx, ebx
mov dword [ebp + 0xf2c], 0
call fcn.00454090
mov al, byte [esp + 0x38]
test al, al
je 0x45a637
lea ecx, [esp + 0x38]
push ecx
call sub.WSOCK32.dll_inet_addr
cmp eax, 0xffffffff
je 0x45a637
lea edx, [esp + 0x38]
push edx
call sub.WSOCK32.dll_inet_addr
mov dword [ebp + 0xf2c], eax
lea eax, [esp + 0x38]
push 0x400
push eax
push str.LICENSESERVER
push str.LICENSE
mov ecx, ebx
call fcn.00454090
lea edi, [esp + 0x38]
or ecx, 0xffffffff
xor eax, eax
lea edx, [ebp + 0xe1c]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 0x7fffffff
mov eax, ecx
mov esi, edi
mov edi, edx
push 0x80000000
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
push 0
and ecx, 3
push str.LICENSESERVERID
rep movsb byte es:[edi], byte [esi]
push str.LICENSE
mov ecx, ebx
call fcn.00454130
cmp eax, 0x7b
jne 0x45a6e5
push 0xffff
push 0
push 0x1158
push str.LICENSEPORTTCP
push str.LICENSE
mov ecx, ebx
call fcn.004542d0
push 0xffff
push 0
push 0x1159
push str.LICENSEPORTUDP
push str.LICENSE
mov ecx, ebx
mov word [ebp + 0xf20], ax
call fcn.004542d0
mov word [ebp + 0xf22], ax
jmp 0x45a6f7
mov word [ebp + 0xf20], 0x1158
mov word [ebp + 0xf22], 0x1159
push 0x7fffffff
push 1
push 2
push str.LICENSETIMEOUT
push str.LICENSE
mov ecx, ebx
call fcn.00454130
mov dword [ebp + 0xf24], eax
mov al, byte [esp + 0x38]
test al, al
je 0x45ab3b
mov al, byte [esp + 0x13]
test al, al
je 0x45a8bb
push 0x2710
push 1
push 0x3c
push str.LICENSESRVWAIT
push str.LICENSE
mov ecx, ebx
call fcn.00454130
mov ecx, eax
mov eax, 0x55555556
imul ecx
mov ecx, edx
xor esi, esi
shr ecx, 0x1f
lea edi, [edx + ecx + 1]
test edi, edi
jle 0x45a7c7
mov al, byte [esp + 0x38]
test al, al
je 0x45a78b
mov al, byte [ebp + 0xc16]
lea edx, [esp + 0x38]
test al, al
push 0
push edx
sete al
push eax
mov ecx, ebp
call fcn.0045bea0
test al, al
jne 0x45ac62
mov ecx, ebp
call fcn.0045cd20
test eax, eax
jne 0x45a7f1
push eax
push eax
push eax
mov ecx, ebp
call fcn.0045bea0
test al, al
jne 0x45a98a
mov ecx, ebp
call fcn.0045cd20
test eax, eax
jne 0x45a886
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
inc esi
cmp esi, edi
jl 0x45a761
mov ecx, dword [0x4fa100]
lea eax, [esp + 0x38]
push eax
mov eax, dword [esp + 0x2d60]
mov edx, dword [ecx + 0x984]
push edx
push eax
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0xc
xor al, al
jmp 0x45ad63
mov ecx, ebp
call fcn.0045cd20
lea ecx, [eax - 1]
mov eax, dword [0x4fa100]
cmp ecx, 3
ja case.default.0x45a805
jmp dword [ecx*4 + 0x45ada8]
mov edi, dword [eax + 0x980]
jmp 0x45a82a
mov edi, dword [eax + 0x988]
jmp 0x45a82a
mov edi, dword [eax + 0x98c]
jmp 0x45a82a
mov edi, dword [eax + 0x990]
test edi, edi
je case.default.0x45a805
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, dword [esp + 0x2d5c]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
xor al, al
rep movsb byte es:[edi], byte [esi]
jmp 0x45ad63
mov edi, dword [eax + 0x980]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, dword [esp + 0x2d5c]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
xor al, al
rep movsb byte es:[edi], byte [esi]
jmp 0x45ad63
mov ecx, dword [0x4fa100]
xor eax, eax
mov edi, dword [ecx + 0x980]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, dword [esp + 0x2d5c]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
xor al, al
rep movsb byte es:[edi], byte [esi]
jmp 0x45ad63
mov al, byte [ebp + 0xc16]
xor esi, esi
test al, al
lea ecx, [esp + 0x38]
push esi
sete dl
push ecx
push edx
mov ecx, ebp
call fcn.0045bea0
test al, al
je 0x45a8f1
mov eax, dword [esp + 0x2d54]
mov byte [ebp + 0xc14], 1
mov dword [eax], esi
mov al, 1
jmp 0x45ad63
mov al, byte [esp + 0x38]
test al, al
je 0x45ab3b
mov al, byte [ebp + 0xc16]
test al, al
je 0x45a94a
mov ecx, ebp
call fcn.0045cd20
test eax, eax
jne 0x45a94a
push esi
push esi
push esi
mov ecx, ebp
call fcn.0045bea0
test al, al
jne 0x45a98a
mov edx, dword [0x4fa100]
lea ecx, [esp + 0x38]
push ecx
mov ecx, dword [esp + 0x2d60]
mov eax, dword [edx + 0x984]
push eax
push ecx
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0xc
xor al, al
jmp 0x45ad63
mov al, byte [esp + 0x38]
test al, al
je 0x45ab3b
mov al, byte [ebp + 0xc16]
test al, al
jne 0x45ab3b
mov ecx, ebp
call fcn.0045cd20
test eax, eax
jne 0x45ab3b
mov edx, dword [esp + 0x2d54]
push esi
push esi
push esi
mov ecx, ebp
mov dword [edx], esi
call fcn.0045bea0
test al, al
je 0x45a9ba
mov cl, byte [ebp + 0xc1c]
lea eax, [ebp + 0xc1c]
test cl, cl
je 0x45a9ac
push eax
push str.LICENSESERVER
push str.LICENSE
mov ecx, ebx
call fcn.004544b0
mov byte [ebp + 0xc14], 1
mov al, 1
jmp 0x45ad63
mov byte [ebp + 0xf30], 1
mov ecx, dword [0x4fa100]
lea eax, [esp + 0x38]
mov edx, dword [ecx + 0x984]
push eax
lea eax, [esp + 0xd40]
push edx
push eax
call dword [sym.imp.MSVCRT.dll_sprintf]
mov al, byte [ebp + 0xf60]
add esp, 0xc
test al, al
jne 0x45aa0f
mov ecx, dword [0x4fa100]
push 0x2010
lea eax, [esp + 0xd40]
mov edx, dword [ecx + 0x978]
push edx
push eax
push esi
call dword [sym.imp.USER32.dll_MessageBoxA]
push 1
push esi
push 1
mov ecx, ebp
mov dword [0x4fa0f8], ebx
call fcn.0045bea0
test al, al
je 0x45aa5b
mov cl, byte [ebp + 0xc1c]
lea eax, [ebp + 0xc1c]
test cl, cl
je 0x45aa47
push eax
push str.LICENSESERVER
push str.LICENSE
mov ecx, ebx
call fcn.004544b0
mov dword [0x4fa0f8], esi
mov byte [ebp + 0xc14], 1
mov al, 1
jmp 0x45ad63
lea ecx, [esp + 0xd3c]
push 0x400
push ecx
push str.LICENSESERVER
push str.LICENSE
mov ecx, ebx
call fcn.00454090
mov al, byte [esp + 0xd3c]
mov dword [0x4fa0f8], esi
test al, al
je 0x45aa91
xor al, al
jmp 0x45ad63
mov byte [ebp + 0xc1c], 0
mov ecx, dword [esp + 0x2d5c]
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x2d4c]
push 0
push 0x1e
lea edx, [esp + 0x20]
push ecx
push edx
push 0
push esi
push edi
mov ecx, ebp
call fcn.0045d2a0
mov cl, byte [ebp + 0xc1c]
mov byte [esp + 0x13], al
lea eax, [ebp + 0xc1c]
test cl, cl
je 0x45aae9
test ebx, ebx
je 0x45aae9
push eax
push str.LICENSESERVER
push str.LICENSE
mov ecx, ebx
call fcn.004544b0
mov ecx, ebp
call fcn.0045cd20
cmp eax, 1
jne 0x45ac56
mov al, byte [ebp + 0xc16]
test al, al
mov eax, dword [0x4fa100]
je 0x45ac16
mov edi, dword [eax + 0x980]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, dword [esp + 0x2d5c]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
xor al, al
rep movsb byte es:[edi], byte [esi]
jmp 0x45ad63
mov ecx, ebp
call fcn.0045cd20
test eax, eax
je 0x45aa98
mov ecx, ebp
xor esi, esi
call fcn.0045cd20
mov ecx, dword [0x4fa100]
dec eax
cmp eax, 3
ja case.default.0x45ab5f
jmp dword [eax*4 + 0x45adb8]
mov esi, dword [ecx + 0x980]
jmp case.default.0x45ab5f
mov esi, dword [ecx + 0x988]
jmp case.default.0x45ab5f
mov esi, dword [ecx + 0x98c]
jmp case.default.0x45ab5f
mov esi, dword [ecx + 0x990]
mov al, byte [ebp + 0xc16]
test al, al
je 0x45abc7
test esi, esi
je 0x45ab96
mov ecx, esi
jmp 0x45ab9c
mov ecx, dword [ecx + 0x980]
mov edi, ecx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, dword [esp + 0x2d5c]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
xor al, al
rep movsb byte es:[edi], byte [esi]
jmp 0x45ad63
test esi, esi
jne 0x45abd1
mov esi, dword [ecx + 0x980]
lea eax, [esp + 0xd3c]
push esi
push eax
call dword [sym.imp.MSVCRT.dll_sprintf]
mov al, byte [ebp + 0xf60]
add esp, 8
test al, al
jne 0x45ac0f
mov ecx, dword [0x4fa100]
push 0x2010
lea eax, [esp + 0xd40]
mov edx, dword [ecx + 0x978]
push edx
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
xor al, al
jmp 0x45ad63
mov ecx, dword [eax + 0x97c]
lea edx, [esp + 0x1d3c]
push ecx
push edx
call dword [sym.imp.MSVCRT.dll_sprintf]
mov eax, dword [0x4fa100]
add esp, 8
lea edx, [esp + 0x1d3c]
mov ecx, dword [eax + 0x978]
push 0x2010
push ecx
push edx
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
xor al, al
jmp 0x45ad63
mov ecx, ebp
call fcn.0045cd20
cmp eax, 5
jl 0x45ac70
mov byte [ebp + 0xc14], 1
mov al, 1
jmp 0x45ad63
mov eax, dword [esp + 0x18]
test eax, eax
je 0x45acdf
lea eax, [ebp + 0xc15]
push eax
lea eax, [ebp + 0x40d]
push eax
lea eax, [esp + 0x540]
push 0x400
push eax
lea eax, [ebp + 0xc]
push eax
call fcn.004625f0
add esp, 0xc
push eax
call fcn.00479930
add esp, 0xc
test al, al
je 0x45acdf
mov eax, dword [esp + 0x18]
test eax, eax
je 0x45acec
mov al, byte [esp + 0x13]
test al, al
je 0x45acd5
mov ecx, dword [esp + 0x2d54]
cmp dword [ecx], 0
jne 0x45acd5
mov eax, 1
mov byte [ebp + 0xc14], al
jmp 0x45acec
xor eax, eax
mov byte [ebp + 0xc14], al
jmp 0x45acec
mov edx, dword [esp + 0x2d54]
mov dword [edx], 1
mov eax, dword [esp + 0x2d54]
cmp dword [eax], 0
jne 0x45ad0a
mov cl, byte [ebp + 0x40d]
mov dl, byte [ebp + 0x40e]
mov byte [ebp + 6], cl
mov byte [ebp + 7], dl
mov cl, byte [esp + 0x13]
test cl, cl
je 0x45ad3e
cmp dword [eax], 0
jne 0x45ad3e
mov al, byte [esp + 0x2d60]
test al, al
je 0x45ad29
mov byte [esp + 0x13], 1
jmp 0x45ad3e
mov eax, dword [esp + 0x2d5c]
mov ecx, ebp
push eax
push edi
push esi
call fcn.0045b3f0
mov byte [esp + 0x13], al
mov al, byte [ebp + 0xc14]
test al, al
je 0x45ad57
mov al, byte [esp + 0x13]
test al, al
je 0x45ad57
mov eax, 1
jmp 0x45ad59
xor eax, eax
mov byte [ebp + 0xc14], al
mov al, byte [esp + 0x13]
mov ecx, dword [esp + 0x2d3c]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x2d38
ret 0x1c