Function at 0x40bf30
Capabilities:
Set socket configuration

Disassembly:
push 0xffffffffffffffff
mov eax, dword fs:[0]
push 0x41ed76
push eax
mov eax, 0x2d2c
mov dword fs:[0], esp
call fcn.0041e190
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 0x40bf7a
push eax
call fcn.0040f0f0
mov byte [ebp + 0xc14], 1
mov al, 1
jmp 0x40cefd
mov ebx, dword [esp + 0x2d5c]
test ebx, ebx
je 0x40bf88
mov byte [ebx], 0
mov eax, dword [esp + 0x2d58]
test eax, eax
jne 0x40bf98
mov eax, str.license.key
push eax
mov eax, dword [esp + 0x2d50]
push eax
lea ecx, [esp + 0x540]
push 0x424fe8
push ecx
call dword [sym.imp.MSVCRT.dll_sprintf]
lea edx, [esp + 0x548]
push edx
call fcn.004148e0
add esp, 0x14
test al, al
jne 0x40c09c
lea eax, [esp + 0x538]
lea ecx, [esp + 0x138]
push eax
push ecx
call fcn.004124b0
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 fcn.0041de8c
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 0x40c088
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.00411fe0
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 sub.MFC42.DLL_CFileFind::CFileFind
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 0x40c0d9
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 + 0xf6e], al
mov dword [ecx], 0
test ebx, ebx
je 0x40c13b
push closesocket
push closesocket
push 0
push str.STARTCOUNT
push str.GLOBAL
mov ecx, ebx
call fcn.0040b580
mov dword [ebp + 0xc18], eax
inc eax
push eax
push str.STARTCOUNT
push str.GLOBAL
mov ecx, ebx
call fcn.0040b7e0
mov al, byte [ebp + 0xf6e]
test al, al
je 0x40c154
mov al, byte [ebp + 0xc16]
mov byte [esp + 0x13], 1
test al, al
jne 0x40c159
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.00411fe0
add esp, 0xc
push eax
call fcn.0041d990
add esp, 0xc
test al, al
je 0x40c6a9
lea eax, [ebp + 0x5e8]
push str._HASP_
push eax
mov byte [ebp + 0x64a], 0
call fcn.004121d0
mov esi, eax
add esp, 8
test esi, esi
je 0x40c1f4
mov byte [ebp + 0x40c], 1
mov byte [esi], 0
dec esi
mov ecx, esi
sub ecx, ebp
sub ecx, 0x40d
cmp ecx, 0x1db
jle 0x40c1f4
movsx edx, byte [esi]
push edx
call dword [sym.imp.MSVCRT.dll_isspace]
add esp, 4
test eax, eax
je 0x40c1f4
mov byte [esi], 0
dec esi
mov eax, esi
sub eax, ebp
sub eax, 0x40d
cmp eax, 0x1db
jg 0x40c1cf
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.0040d430
test eax, eax
je 0x40c218
mov byte [ebp + 0x40c], 0
mov esi, dword [esp + 0x14]
lea eax, [esi - 0x1301]
cmp eax, 0xc
ja case.0x40c233.4870
xor ecx, ecx
mov cl, byte [eax + 0x40cf30]
jmp dword [ecx*4 + 0x40cf18]
mov eax, str.CIMCO_Edit
jmp 0x40c25b
mov eax, str.CIMCO_DNC_Max_Server
jmp 0x40c25b
mov eax, str.CIMCO_Database_Server
jmp 0x40c25b
mov eax, str.CIMCO_Network_License_Server
jmp 0x40c25b
mov eax, str.CIMCO_MDC_Max_Client
test eax, eax
mov dword [esp + 0x14], eax
je case.0x40c233.4870
mov ecx, ebp
call fcn.0040cf60
test eax, eax
jne case.0x40c233.4870
mov byte [esp + 0x13], al
lea edx, [esp + 0x13]
lea eax, [esp + 0x138]
push edx
push eax
call fcn.00414360
mov al, byte [esp + 0x1b]
add esp, 8
test al, al
je 0x40c2b3
mov edx, dword [0x42b01c]
mov ecx, dword [esp + 0x14]
push ecx
lea ecx, [esp + 0x13c]
mov eax, dword [edx + 0x97c]
push eax
push ecx
jmp 0x40c2cc
mov eax, dword [0x42b01c]
mov edx, dword [esp + 0x14]
push edx
lea edx, [esp + 0x13c]
mov ecx, dword [eax + 0x980]
push ecx
push edx
call dword [sym.imp.MSVCRT.dll_sprintf]
mov al, byte [ebp + 0xc16]
add esp, 0xc
test al, al
je 0x40c30f
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 0x40cefd
mov ecx, dword [0x42b01c]
push 0x2010
lea eax, [esp + 0x13c]
mov edx, dword [ecx + 0x508]
push edx
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
xor al, al
jmp 0x40cefd
push esi
mov ecx, ebp
call fcn.0040e0c0
test al, al
je 0x40c463
call fcn.0040e100
test eax, eax
je 0x40c448
mov ecx, dword [esp + 0x2d54]
mov byte [esp + 0x13], 0
mov dword [ecx], 0
mov cl, byte [ebp + 0xc16]
test cl, cl
je 0x40c3d0
dec eax
je 0x40c3c3
dec eax
je 0x40c385
mov edx, dword [0x42b01c]
mov edi, dword [edx + 0xa00]
jmp 0x40c390
mov eax, dword [0x42b01c]
mov edi, dword [eax + 0x9f4]
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 0x40cef3
mov eax, dword [0x42b01c]
mov edi, dword [eax + 0x9f8]
jmp 0x40c390
dec eax
je 0x40c3f3
mov edx, dword [0x42b01c]
dec eax
lea ebx, [esp + 0x138]
je 0x40c3eb
mov edi, dword [edx + 0xa00]
jmp 0x40c406
mov edi, dword [edx + 0x9f4]
jmp 0x40c406
mov edx, dword [0x42b01c]
lea ebx, [esp + 0x138]
mov edi, dword [edx + 0x9f8]
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 + 0x508]
lea edx, [esp + 0x13c]
push ecx
push edx
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
mov al, byte [esp + 0x13]
jmp 0x40cef3
mov eax, dword [esp + 0x2d54]
mov byte [esp + 0x13], 1
mov dword [eax], 0
mov al, byte [esp + 0x13]
jmp 0x40cef3
mov ecx, ebp
call fcn.0040dff0
test al, al
je 0x40c4c5
push 0
push ebx
mov ecx, ebp
call fcn.0040dee0
test eax, eax
je 0x40c48a
mov byte [esp + 0x13], 1
mov al, byte [esp + 0x13]
jmp 0x40cef3
mov ecx, dword [esp + 0x2d54]
push 0x2010
mov byte [esp + 0x17], 0
mov dword [ecx], 0
mov eax, dword [0x42b01c]
mov edx, dword [eax + 0x508]
mov eax, dword [eax + 0x970]
push edx
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
mov al, byte [esp + 0x13]
jmp 0x40cef3
mov ecx, ebp
call fcn.0040e040
test al, al
je 0x40c4f7
push 0
push ebx
mov ecx, ebp
call fcn.0040dfd0
mov ecx, dword [esp + 0x2d54]
test eax, eax
setne byte [esp + 0x13]
mov al, byte [esp + 0x13]
mov dword [ecx], 0
jmp 0x40cef3
mov ecx, ebp
call fcn.0040d430
test eax, eax
je 0x40c59f
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.0040f650
mov byte [esp + 0x13], al
mov eax, dword [esp + 0x18]
test eax, eax
je 0x40c569
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.00411fe0
add esp, 0xc
push eax
call fcn.0041d990
add esp, 0xc
test al, al
jne 0x40c584
mov ecx, ebp
call fcn.0040d430
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 0x40cef3
mov ecx, ebp
call fcn.0040d4b0
test eax, eax
je 0x40c648
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.0040f650
mov byte [esp + 0x13], al
mov eax, dword [esp + 0x18]
test eax, eax
je 0x40c611
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.00411fe0
add esp, 0xc
push eax
call fcn.0041d990
add esp, 0xc
test al, al
jne 0x40c62d
mov ecx, ebp
call fcn.0040d4b0
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 0x40cef3
mov al, byte [esp + 0x2d60]
test al, al
je 0x40c661
mov byte [esp + 0x13], 1
mov al, byte [esp + 0x13]
jmp 0x40cef3
mov eax, dword [esp + 0x2d5c]
mov ebx, dword [esp + 0x2d4c]
push eax
push ebx
push esi
mov ecx, ebp
call fcn.0040d780
test al, al
mov byte [esp + 0x13], al
jne 0x40c6a0
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.0040f650
mov byte [esp + 0x13], al
mov al, byte [esp + 0x13]
jmp 0x40cef3
cmp byte [esi], 0
je 0x40c73b
mov al, byte [ebp + 0xc16]
test al, al
je 0x40c704
mov ecx, dword [0x42b01c]
xor eax, eax
mov edx, dword [ecx + 0x9cc]
or ecx, 0xffffffff
push edx
mov edx, dword [esp + 0x2d60]
mov edi, edx
push 0x424f84
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 0x40cef9
mov eax, dword [0x42b01c]
push 0x2010
mov ecx, dword [eax + 0x508]
mov edx, dword [eax + 0x9cc]
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 0x40cef9
cmp dword [esp + 0x14], 0x130a
je 0x40cb4d
mov cl, byte [0x42a800]
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 0x40cc32
test ebx, ebx
je 0x40cc32
mov edx, dword [esp + 0x14]
mov ecx, ebp
push edx
call fcn.0040f3e0
lea eax, [esp + 0x38]
push 0x100
push eax
push str.LICENSEADAPTER
push str.LICENSE
mov ecx, ebx
mov dword [ebp + 0xf2c], 0
call fcn.0040b520
mov al, byte [esp + 0x38]
test al, al
je 0x40c7d1
lea ecx, [esp + 0x38]
push ecx
call sub.WSOCK32.dll_inet_addr
cmp eax, 0xffffffff
je 0x40c7d1
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.0040b520
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 closesocket
mov eax, ecx
mov esi, edi
mov edi, edx
push closesocket
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.0040b580
cmp eax, 0x7b
jne 0x40c87f
push 0xffff
push 0
push 0x1158
push str.LICENSEPORTTCP
push str.LICENSE
mov ecx, ebx
call fcn.0040b720
push 0xffff
push 0
push 0x1159
push str.LICENSEPORTUDP
push str.LICENSE
mov ecx, ebx
mov word [ebp + 0xf20], ax
call fcn.0040b720
mov word [ebp + 0xf22], ax
jmp 0x40c891
mov word [ebp + 0xf20], 0x1158
mov word [ebp + 0xf22], 0x1159
push closesocket
push 1
push 2
push str.LICENSETIMEOUT
push str.LICENSE
mov ecx, ebx
call fcn.0040b580
mov dword [ebp + 0xf24], eax
mov al, byte [esp + 0x38]
test al, al
je 0x40ccd5
mov al, byte [esp + 0x13]
test al, al
je 0x40ca55
push 0x2710
push 1
push 0x3c
push str.LICENSESRVWAIT
push str.LICENSE
mov ecx, ebx
call fcn.0040b580
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 0x40c961
mov al, byte [esp + 0x38]
test al, al
je 0x40c925
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.0040e1e0
test al, al
jne 0x40cdfc
mov ecx, ebp
call fcn.0040f0e0
test eax, eax
jne 0x40c98b
push eax
push eax
push eax
mov ecx, ebp
call fcn.0040e1e0
test al, al
jne 0x40cb24
mov ecx, ebp
call fcn.0040f0e0
test eax, eax
jne 0x40ca20
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
inc esi
cmp esi, edi
jl 0x40c8fb
mov ecx, dword [0x42b01c]
lea eax, [esp + 0x38]
push eax
mov eax, dword [esp + 0x2d60]
mov edx, dword [ecx + 0x998]
push edx
push eax
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0xc
xor al, al
jmp 0x40cefd
mov ecx, ebp
call fcn.0040f0e0
lea ecx, [eax - 1]
mov eax, dword [0x42b01c]
cmp ecx, 3
ja case.default.0x40c99f
jmp dword [ecx*4 + 0x40cf40]
mov edi, dword [eax + 0x994]
jmp 0x40c9c4
mov edi, dword [eax + 0x99c]
jmp 0x40c9c4
mov edi, dword [eax + 0x9a0]
jmp 0x40c9c4
mov edi, dword [eax + 0x9a4]
test edi, edi
je case.default.0x40c99f
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 0x40cefd
mov edi, dword [eax + 0x994]
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 0x40cefd
mov ecx, dword [0x42b01c]
xor eax, eax
mov edi, dword [ecx + 0x994]
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 0x40cefd
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.0040e1e0
test al, al
je 0x40ca8b
mov eax, dword [esp + 0x2d54]
mov byte [ebp + 0xc14], 1
mov dword [eax], esi
mov al, 1
jmp 0x40cefd
mov al, byte [esp + 0x38]
test al, al
je 0x40ccd5
mov al, byte [ebp + 0xc16]
test al, al
je 0x40cae4
mov ecx, ebp
call fcn.0040f0e0
test eax, eax
jne 0x40cae4
push esi
push esi
push esi
mov ecx, ebp
call fcn.0040e1e0
test al, al
jne 0x40cb24
mov edx, dword [0x42b01c]
lea ecx, [esp + 0x38]
push ecx
mov ecx, dword [esp + 0x2d60]
mov eax, dword [edx + 0x998]
push eax
push ecx
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0xc
xor al, al
jmp 0x40cefd
mov al, byte [esp + 0x38]
test al, al
je 0x40ccd5
mov al, byte [ebp + 0xc16]
test al, al
jne 0x40ccd5
mov ecx, ebp
call fcn.0040f0e0
test eax, eax
jne 0x40ccd5
mov edx, dword [esp + 0x2d54]
push esi
push esi
push esi
mov ecx, ebp
mov dword [edx], esi
call fcn.0040e1e0
test al, al
je 0x40cb54
mov cl, byte [ebp + 0xc1c]
lea eax, [ebp + 0xc1c]
test cl, cl
je 0x40cb46
push eax
push str.LICENSESERVER
push str.LICENSE
mov ecx, ebx
call fcn.0040b8f0
mov byte [ebp + 0xc14], 1
mov al, 1
jmp 0x40cefd
mov byte [ebp + 0xf30], 1
mov ecx, dword [0x42b01c]
lea eax, [esp + 0x38]
mov edx, dword [ecx + 0x998]
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 0x40cba9
mov ecx, dword [0x42b01c]
push 0x2010
lea eax, [esp + 0xd40]
mov edx, dword [ecx + 0x98c]
push edx
push eax
push esi
call dword [sym.imp.USER32.dll_MessageBoxA]
push 1
push esi
push 1
mov ecx, ebp
mov dword [0x42b014], ebx
call fcn.0040e1e0
test al, al
je 0x40cbf5
mov cl, byte [ebp + 0xc1c]
lea eax, [ebp + 0xc1c]
test cl, cl
je 0x40cbe1
push eax
push str.LICENSESERVER
push str.LICENSE
mov ecx, ebx
call fcn.0040b8f0
mov dword [0x42b014], esi
mov byte [ebp + 0xc14], 1
mov al, 1
jmp 0x40cefd
lea ecx, [esp + 0xd3c]
push 0x400
push ecx
push str.LICENSESERVER
push str.LICENSE
mov ecx, ebx
call fcn.0040b520
mov al, byte [esp + 0xd3c]
mov dword [0x42b014], esi
test al, al
je 0x40cc2b
xor al, al
jmp 0x40cefd
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.0040f650
mov cl, byte [ebp + 0xc1c]
mov byte [esp + 0x13], al
lea eax, [ebp + 0xc1c]
test cl, cl
je 0x40cc83
test ebx, ebx
je 0x40cc83
push eax
push str.LICENSESERVER
push str.LICENSE
mov ecx, ebx
call fcn.0040b8f0
mov ecx, ebp
call fcn.0040f0e0
cmp eax, 1
jne 0x40cdf0
mov al, byte [ebp + 0xc16]
test al, al
mov eax, dword [0x42b01c]
je 0x40cdb0
mov edi, dword [eax + 0x994]
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 0x40cefd
mov ecx, ebp
call fcn.0040f0e0
test eax, eax
je 0x40cc32
mov ecx, ebp
xor esi, esi
call fcn.0040f0e0
mov ecx, dword [0x42b01c]
dec eax
cmp eax, 3
ja case.default.0x40ccf9
jmp dword [eax*4 + 0x40cf50]
mov esi, dword [ecx + 0x994]
jmp case.default.0x40ccf9
mov esi, dword [ecx + 0x99c]
jmp case.default.0x40ccf9
mov esi, dword [ecx + 0x9a0]
jmp case.default.0x40ccf9
mov esi, dword [ecx + 0x9a4]
mov al, byte [ebp + 0xc16]
test al, al
je 0x40cd61
test esi, esi
je 0x40cd30
mov ecx, esi
jmp 0x40cd36
mov ecx, dword [ecx + 0x994]
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 0x40cefd
test esi, esi
jne 0x40cd6b
mov esi, dword [ecx + 0x994]
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 0x40cda9
mov ecx, dword [0x42b01c]
push 0x2010
lea eax, [esp + 0xd40]
mov edx, dword [ecx + 0x98c]
push edx
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
xor al, al
jmp 0x40cefd
mov ecx, dword [eax + 0x990]
lea edx, [esp + 0x1d3c]
push ecx
push edx
call dword [sym.imp.MSVCRT.dll_sprintf]
mov eax, dword [0x42b01c]
add esp, 8
lea edx, [esp + 0x1d3c]
mov ecx, dword [eax + 0x98c]
push 0x2010
push ecx
push edx
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
xor al, al
jmp 0x40cefd
mov ecx, ebp
call fcn.0040f0e0
cmp eax, 5
jl 0x40ce0a
mov byte [ebp + 0xc14], 1
mov al, 1
jmp 0x40cefd
mov eax, dword [esp + 0x18]
test eax, eax
je 0x40ce79
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.00411fe0
add esp, 0xc
push eax
call fcn.0041d990
add esp, 0xc
test al, al
je 0x40ce79
mov eax, dword [esp + 0x18]
test eax, eax
je 0x40ce86
mov al, byte [esp + 0x13]
test al, al
je 0x40ce6f
mov ecx, dword [esp + 0x2d54]
cmp dword [ecx], 0
jne 0x40ce6f
mov eax, 1
mov byte [ebp + 0xc14], al
jmp 0x40ce86
xor eax, eax
mov byte [ebp + 0xc14], al
jmp 0x40ce86
mov edx, dword [esp + 0x2d54]
mov dword [edx], 1
mov eax, dword [esp + 0x2d54]
cmp dword [eax], 0
jne 0x40cea4
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 0x40ced8
cmp dword [eax], 0
jne 0x40ced8
mov al, byte [esp + 0x2d60]
test al, al
je 0x40cec3
mov byte [esp + 0x13], 1
jmp 0x40ced8
mov eax, dword [esp + 0x2d5c]
mov ecx, ebp
push eax
push edi
push esi
call fcn.0040d780
mov byte [esp + 0x13], al
mov al, byte [ebp + 0xc14]
test al, al
je 0x40cef1
mov al, byte [esp + 0x13]
test al, al
je 0x40cef1
mov eax, 1
jmp 0x40cef3
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