Function at 0x616740
Capabilities:
Execute anti-debugging instructions

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xfffffc28
mov esi, str.ws2_32.dll
mov ebp, esp
lea eax, [esi + 0x1895]
push eax
call fcn.00610394
pop ecx
call fcn.006106c8
lea edx, [esi + 0x18c7]
push edx
lea ecx, [esi + 0x18b1]
push ecx
lea eax, [esp + 0x78]
push eax
call fcn.005ef8f4
add esp, 0xc
lea edx, [esp + 0x70]
push edx
call fcn.00610394
pop ecx
lea ecx, [esp + 0x170]
push ecx
call fcn.0068f49a
mov eax, dword [esp + 0x184]
lea edx, [esi + 0x18cc]
push eax
push edx
mov dword [0x723614], eax
call fcn.00610684
add esp, 8
lea ecx, [esi + 0x18e4]
push ecx
call fcn.00610394
pop ecx
lea eax, [esi + 0x18eb]
push eax
lea edx, [esp + 0x74]
push edx
call fcn.0068f674
push 0x94
push 0
lea ecx, [esp + 0x19c]
push ecx
call fcn.006111d4
add esp, 0xc
mov dword [esp + 0x194], 0x94
lea eax, [esp + 0x194]
push eax
call fcn.0068f4d6
mov edx, dword [esp + 0x1a4]
sub edx, 1
jb 0x616819
je 0x616837
dec edx
je 0x6168fa
jmp 0x6169ed
lea ecx, [esi + 0x18f3]
push ecx
lea eax, [esp + 0x74]
push eax
call fcn.0068f65c
xor edx, edx
mov dword [0x72e2ac], edx
jmp 0x6169ed
mov ecx, dword [esp + 0x19c]
sub ecx, 1
jb 0x616856
sub ecx, 9
je 0x616898
sub ecx, 0x50
je 0x6168da
jmp 0x6169ed
lea eax, [esi + 0x18f7]
push eax
lea edx, [esp + 0x74]
push edx
call fcn.0068f65c
mov dword [0x72e2ac], 1
movsx ecx, byte [esp + 0x1a8]
cmp ecx, 0x43
jne 0x6169ed
lea eax, [esi + 0x18fa]
push eax
lea edx, [esp + 0x74]
push edx
call fcn.0068f65c
jmp 0x6169ed
lea ecx, [esi + 0x18ff]
push ecx
lea eax, [esp + 0x74]
push eax
call fcn.0068f65c
mov dword [0x72e2ac], 2
movsx edx, byte [esp + 0x1a8]
cmp edx, 0x41
jne 0x6169ed
lea ecx, [esi + 0x1902]
push ecx
lea eax, [esp + 0x74]
push eax
call fcn.0068f65c
jmp 0x6169ed
lea edx, [esi + 0x1905]
push edx
lea ecx, [esp + 0x74]
push ecx
call fcn.0068f65c
mov dword [0x72e2ac], 3
jmp 0x6169ed
mov eax, dword [esp + 0x198]
sub eax, 3
je 0x616918
dec eax
je 0x616938
dec eax
je 0x616958
dec eax
je 0x6169a5
jmp 0x6169ed
lea edx, [esi + 0x1908]
push edx
lea ecx, [esp + 0x74]
push ecx
call fcn.0068f65c
mov dword [0x72e2ac], 0x104
jmp 0x6169ed
lea eax, [esi + 0x1910]
push eax
lea edx, [esp + 0x74]
push edx
call fcn.0068f65c
mov dword [0x72e2ac], 0x105
jmp 0x6169ed
mov ecx, dword [esp + 0x19c]
sub ecx, 1
jb 0x61696b
je 0x616988
jmp 0x6169ed
lea eax, [esi + 0x1914]
push eax
lea edx, [esp + 0x74]
push edx
call fcn.0068f65c
mov dword [0x72e2ac], 0x106
jmp 0x6169ed
lea ecx, [esi + 0x1919]
push ecx
lea eax, [esp + 0x74]
push eax
call fcn.0068f65c
mov dword [0x72e2ac], 0x107
jmp 0x6169ed
mov edx, dword [esp + 0x19c]
sub edx, 1
jb 0x6169b5
je 0x6169d2
jmp 0x6169ed
lea ecx, [esi + 0x191c]
push ecx
lea eax, [esp + 0x74]
push eax
call fcn.0068f65c
mov dword [0x72e2ac], 0x108
jmp 0x6169ed
lea edx, [esi + 0x1922]
push edx
lea ecx, [esp + 0x74]
push ecx
call fcn.0068f65c
mov dword [0x72e2ac], 0x109
lea eax, [esp + 0x1a8]
push eax
lea eax, [esi + 0x1924]
mov edx, dword [esp + 0x1a4]
push edx
lea ecx, [esp + 0x78]
push ecx
push eax
push 0x7230ec
call fcn.005ef8f4
add esp, 0x14
push 0x7230ec
lea edx, [esi + 0x1937]
push edx
call fcn.00610684
add esp, 8
mov dword [0x72e2a8], 0x70000
jmp 0x616ec9
push 8
lea ecx, [esp + 0x2c]
push ecx
call dword [0x7236ec]
mov eax, dword [esp + 0x28]
push eax
call dword [0x7236e0]
xor edx, edx
xor ecx, ecx
mov dword [esp + 0x34], edx
mov dword [esp + 0x38], ecx
xor eax, eax
xor edx, edx
mov dword [esp + 0x3c], eax
xor ecx, ecx
mov dword [esp + 0x40], edx
mov dword [esp + 0x44], ecx
mov byte [esp + 0x394], 0
xor eax, eax
mov byte [esp + 0x3c4], 0
mov dword [0x72e2b0], eax
pushfd
pushfd
pop eax
xor eax, 0x200000
push eax
popfd
pushfd
pop ebx
mov dword [ebp + 0x34], 0
cmp eax, ebx
jne 0x617005
mov eax, 0
cpuid
cmp eax, 0
mov dword [ebp + 0x30], eax
mov dword [ebp + 0x3c], ebx
mov dword [ebp + 0x40], edx
mov dword [ebp + 0x44], ecx
mov dword [ebp + 0x34], 1
mov eax, 1
cpuid
and edx, 0x10
shr edx, 4
mov dword [ebp + 0x38], edx
mov eax, 0x80000000
cpuid
cmp eax, 0x80000004
jb 0x616fc9
mov eax, 0x80000002
cpuid
mov dword [ebp + 0x394], eax
mov dword [ebp + 0x398], ebx
mov dword [ebp + 0x39c], ecx
mov dword [ebp + 0x3a0], edx
mov eax, 0x80000003
cpuid
mov dword [ebp + 0x3a4], eax
mov dword [ebp + 0x3a8], ebx
mov dword [ebp + 0x3ac], ecx
mov dword [ebp + 0x3b0], edx
mov eax, 0x80000004
cpuid
mov dword [ebp + 0x3b4], eax
mov dword [ebp + 0x3b8], ebx
mov dword [ebp + 0x3bc], ecx
mov dword [ebp + 0x3c0], edx
mov eax, 1
cpuid
and edx, 0x800000
je 0x617005
mov dword [ebp + 0x34], 3
mov eax, 1
cpuid
and edx, 0x2000000
je 0x617005
add dword [ebp + 0x34], 1
mov eax, 1
cpuid
and edx, 0x4000000
je 0x617005
add dword [ebp + 0x34], 1
popfd
cmp dword [esp + 0x38], 0
mov edx, dword [esp + 0x38]
mov dword [0x72e2bc], edx
je 0x617100
rdtsc
mov dword [ebp + 0x68], eax
mov dword [ebp + 0x6c], edx
push 0
call fcn.00613630
pop ecx
mov ebx, eax
push 0
call fcn.00613630
pop ecx
sub eax, ebx
cmp eax, 0x64
jl 0x61702d
rdtsc
mov dword [ebp + 0x60], eax
mov dword [ebp + 0x64], edx
mov eax, dword [esp + 0x68]
mov dword [esp + 0x50], eax
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x54], edx
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x58], ecx
mov eax, dword [esp + 0x64]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x5c]
sub eax, dword [esp + 0x50]
sbb edx, dword [esp + 0x54]
mov dword [esp + 0x3c8], eax
mov dword [esp + 0x3cc], edx
fild qword [esp + 0x3c8]
fld xword [0x6172d4]
fmulp st(1)
add esp, 0xfffffff8
fstp qword [esp]
call fcn.00611358
add esp, 8
mov ebx, eax
push 0
push 0xa
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0x64]
sub eax, dword [esp + 0x58]
sbb edx, dword [esp + 0x5c]
call fcn.004b1330
mov dword [esp + 0x3d0], ebx
xor ecx, ecx
mov dword [esp + 0x3d4], ecx
mov dword [0x72e2c4], eax
fild qword [esp + 0x3d0]
mov dword [0x72e2c8], edx
fld xword [0x6172e0]
fmulp st(1)
add esp, 0xfffffff8
lea eax, [esi + 0x1c3f]
fstp qword [esp]
push eax
call fcn.00610684
add esp, 0xc
mov dword [0x7233ec], ebx
mov edx, dword [esp + 0x34]
cmp edx, 5
ja case.0x61710d.2
jmp dword [edx*4 + 0x617114]
lea ecx, [esi + 0x1c5b]
push ecx
call fcn.00610394
pop ecx
jmp case.0x61710d.2
lea eax, [esi + 0x1c77]
push eax
call fcn.00610394
pop ecx
jmp case.0x61710d.2
lea edx, [esi + 0x1c8b]
push edx
call fcn.00610394
pop ecx
mov dword [0x72e2b0], 1
jmp case.0x61710d.2
lea ecx, [esi + 0x1ca3]
push ecx
call fcn.00610394
pop ecx
lea eax, [esi + 0x1cbb]
push eax
call fcn.00610394
pop ecx
mov dword [0x72e2b0], 1
mov dword [0x72e2b4], 1
jmp case.0x61710d.2
lea edx, [esi + 0x1cd5]
push edx
call fcn.00610394
pop ecx
lea ecx, [esi + 0x1ced]
push ecx
call fcn.00610394
pop ecx
lea eax, [esi + 0x1d07]
push eax
call fcn.00610394
pop ecx
mov dword [0x72e2b0], 1
mov dword [0x72e2b4], 1
mov dword [0x72e2b8], 1
cmp dword [esp + 0x34], 0
jle 0x61727a
lea edx, [esi + 0x1d23]
push edx
call fcn.00610394
pop ecx
mov byte [esp + 0x4c], 0
lea ecx, [esp + 0x48]
mov eax, dword [esp + 0x3c]
mov dword [ecx], eax
lea edx, [esp + 0x48]
push edx
call fcn.00610348
pop ecx
lea ecx, [esp + 0x48]
mov eax, dword [esp + 0x40]
mov dword [ecx], eax
lea edx, [esp + 0x48]
push edx
call fcn.00610348
pop ecx
lea ecx, [esp + 0x48]
mov eax, dword [esp + 0x44]
mov dword [ecx], eax
lea edx, [esp + 0x48]
push edx
call fcn.00610348
pop ecx
lea ecx, [esi + 0x1d32]
push ecx
call fcn.00610394
pop ecx
cmp byte [esp + 0x394], 0
je 0x61727a
lea eax, [esp + 0x394]
push eax
lea edx, [esi + 0x1d34]
push edx
call fcn.006105fc
add esp, 8
lea ecx, [esp + 0x394]
push ecx
push 0x7232ec
call fcn.0068f674
call fcn.006106d4
mov eax, dword [0x72e2a8]
cmp eax, 0x70000
jge 0x6172c6
test eax, eax
jne 0x6172a8
push 0
lea edx, [esi + 0x1d78]
push edx
lea ecx, [esi + 0x1d41]
push ecx
push 0
call fcn.0068fbf2
jmp 0x6172bf
push 0
lea eax, [esi + 0x1dbf]
push eax
lea edx, [esi + 0x1d7f]
push edx
push 0
call fcn.0068fbf2
push 0xffffffffffffffff
call fcn.0068f398
xor eax, eax
add esp, 0x3d8
pop ebp
pop edi
pop esi
pop ebx
ret