Function at 0x18000a320
Capabilities:
Read .ini file

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x78
mov qword [rbp - 0x18], 0xfffffffffffffffe
mov rcx, qword [0x18003a0a0]
test rcx, rcx
je 0x18000a351
or edx, 0xffffffff
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov dword [0x18003a0c0], 0x8aed
mov dword [0x18003a0b4], 0x12c
mov eax, 1
mov dword [0x18003a0a8], eax
mov dword [0x18003a0c4], eax
xor r15d, r15d
mov qword [0x18003a0ac], rax
xor r8d, r8d
lea rdx, [0x180030830]
lea rcx, [0x18003a0b8]
call fcn.180001590
mov r9, qword [0x18003a0e0]
lea r8, [0x180030830]
lea rdx, [0x180030fd8]
lea rcx, [rbp + 0x50]
call fcn.18000b890
nop
lea rdx, str.false
mov rcx, qword [rbp + 0x50]
call fcn.180011404
test eax, eax
sete al
mov ecx, dword [0x18003a0a8]
test al, al
cmovne ecx, r15d
mov dword [0x18003a0a8], ecx
mov r9, qword [0x18003a0e0]
lea r8, [0x180030830]
lea rdx, [0x180030fe4]
lea rcx, [rbp - 0x30]
call fcn.18000b890
nop
mov r13, qword [rax]
lea rdx, [r13 - 0x18]
mov rcx, qword [rbp + 0x50]
lea rdi, [rcx - 0x18]
or ebx, 0xffffffff
cmp rdx, rdi
je 0x18000a549
cmp dword [rdi + 0x10], r15d
jl 0x18000a452
mov rax, qword [rdi]
cmp qword [rdx], rax
jne 0x18000a452
mov rcx, rdx
call fcn.1800013c0
mov rsi, rax
mov ecx, ebx
lock xadd dword [rdi + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x18000a449
mov rcx, qword [rdi]
mov r8, qword [rcx]
mov rdx, rdi
call qword [rreloc.WS2_32.dll_htonl + 8]
lea rax, [rsi + 0x18]
jmp 0x18000a545
movsxd rsi, dword [r13 - 0x10]
test esi, esi
jne 0x18000a4b9
mov rsi, qword [rdi]
cmp dword [rdi + 8], 0
je 0x18000a549
cmp dword [rdi + 0x10], 0
jge 0x18000a48e
cmp dword [rcx - 0xc], 0
jge 0x18000a47e
mov ecx, 0x80070057
call fcn.180001050
int3
mov dword [rcx - 0x10], r15d
mov rax, qword [rbp + 0x50]
mov byte [rax], 0
jmp 0x18000a549
mov eax, ebx
lock xadd dword [rdi + 0x10], eax
dec eax
test eax, eax
jg 0x18000a4a7
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + reloc.WS2_32.dll_htonl]
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x18]
add rax, 0x18
jmp 0x18000a545
test r13, r13
jne 0x18000a4c9
mov ecx, 0x80070057
call fcn.180001050
int3
mov r14d, dword [rcx - 0x10]
mov r12, r13
sub r12, rcx
test esi, esi
jns 0x18000a4e2
mov ecx, 0x80070057
call fcn.180001050
int3
mov edx, 1
sub edx, dword [rdi + 0x10]
mov eax, dword [rdi + 0xc]
sub eax, esi
or eax, edx
jge 0x18000a502
mov edx, esi
lea rcx, [rbp + 0x50]
call fcn.1800016f0
mov rcx, qword [rbp + 0x50]
mov rdi, rsi
movsxd rdx, dword [rcx - 0xc]
mov r9, rsi
cmp r12, r14
ja 0x18000a51c
lea r8, [r12 + rcx]
call fcn.180010150
jmp 0x18000a524
mov r8, r13
call fcn.180010694
mov rax, qword [rbp + 0x50]
cmp esi, dword [rax - 0xc]
jg 0x18000a53a
mov dword [rax - 0x10], esi
mov rax, qword [rbp + 0x50]
mov byte [rdi + rax], 0
jmp 0x18000a549
mov ecx, 0x80070057
call fcn.180001050
int3
mov qword [rbp + 0x50], rax
mov rdx, qword [rbp - 0x30]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18000a567
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
lea rdx, str.false
mov rcx, qword [rbp + 0x50]
call fcn.180011404
test eax, eax
sete al
mov ecx, dword [0x18003a0ac]
test al, al
cmovne ecx, r15d
mov dword [0x18003a0ac], ecx
mov r9, qword [0x18003a0e0]
mov r8d, 0x258
lea rdx, [0x180030fe8]
lea rcx, str.para
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov dword [0x18003a0b4], eax
mov r9, qword [0x18003a0e0]
lea r8, [0x180030830]
lea rdx, str.fkip
lea rcx, [rbp - 0x20]
call fcn.18000b890
nop
mov r13, qword [rax]
lea rdx, [r13 - 0x18]
mov rcx, qword [rbp + 0x50]
lea rdi, [rcx - 0x18]
cmp rdx, rdi
je 0x18000a71f
cmp dword [rdi + 0x10], 0
jl 0x18000a628
mov rax, qword [rdi]
cmp qword [rdx], rax
jne 0x18000a628
mov rcx, rdx
call fcn.1800013c0
mov rsi, rax
mov ecx, ebx
lock xadd dword [rdi + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x18000a61f
mov rcx, qword [rdi]
mov r8, qword [rcx]
mov rdx, rdi
call qword [rreloc.WS2_32.dll_htonl + 8]
lea rax, [rsi + 0x18]
jmp 0x18000a71b
movsxd rsi, dword [r13 - 0x10]
test esi, esi
jne 0x18000a68f
mov rsi, qword [rdi]
cmp dword [rdi + 8], 0
je 0x18000a71f
cmp dword [rdi + 0x10], 0
jge 0x18000a664
cmp dword [rcx - 0xc], 0
jge 0x18000a654
mov ecx, 0x80070057
call fcn.180001050
int3
mov dword [rcx - 0x10], r15d
mov rax, qword [rbp + 0x50]
mov byte [rax], 0
jmp 0x18000a71f
mov eax, ebx
lock xadd dword [rdi + 0x10], eax
dec eax
test eax, eax
jg 0x18000a67d
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + reloc.WS2_32.dll_htonl]
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x18]
add rax, 0x18
jmp 0x18000a71b
test r13, r13
jne 0x18000a69f
mov ecx, 0x80070057
call fcn.180001050
int3
mov r14d, dword [rcx - 0x10]
mov r12, r13
sub r12, rcx
test esi, esi
jns 0x18000a6b8
mov ecx, 0x80070057
call fcn.180001050
int3
mov edx, 1
sub edx, dword [rdi + 0x10]
mov eax, dword [rdi + 0xc]
sub eax, esi
or eax, edx
jge 0x18000a6d8
mov edx, esi
lea rcx, [rbp + 0x50]
call fcn.1800016f0
mov rcx, qword [rbp + 0x50]
mov rdi, rsi
movsxd rdx, dword [rcx - 0xc]
mov r9, rsi
cmp r12, r14
ja 0x18000a6f2
lea r8, [r12 + rcx]
call fcn.180010150
jmp 0x18000a6fa
mov r8, r13
call fcn.180010694
mov rax, qword [rbp + 0x50]
cmp esi, dword [rax - 0xc]
jg 0x18000a710
mov dword [rax - 0x10], esi
mov rax, qword [rbp + 0x50]
mov byte [rdi + rax], 0
jmp 0x18000a71f
mov ecx, 0x80070057
call fcn.180001050
int3
mov qword [rbp + 0x50], rax
mov rdx, qword [rbp - 0x20]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18000a73d
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
lea rdx, str.true
mov rcx, qword [rbp + 0x50]
call fcn.180011404
test eax, eax
sete al
mov ecx, dword [0x18003a0b0]
test al, al
mov eax, 1
cmovne ecx, eax
mov dword [0x18003a0b0], ecx
mov r9, qword [0x18003a0e0]
lea r8, [0x180030830]
lea rdx, [0x180030ff0]
lea rcx, [rbp - 0x48]
call fcn.18000b890
nop
mov r13, qword [rax]
lea rdx, [r13 - 0x18]
mov rcx, qword [rbp + 0x50]
lea rdi, [rcx - 0x18]
cmp rdx, rdi
je 0x18000a8d2
cmp dword [rdi + 0x10], 0
jl 0x18000a7db
mov rax, qword [rdi]
cmp qword [rdx], rax
jne 0x18000a7db
mov rcx, rdx
call fcn.1800013c0
mov rsi, rax
mov ecx, ebx
lock xadd dword [rdi + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x18000a7d2
mov rcx, qword [rdi]
mov r8, qword [rcx]
mov rdx, rdi
call qword [rreloc.WS2_32.dll_htonl + 8]
lea rax, [rsi + 0x18]
jmp 0x18000a8ce
movsxd rsi, dword [r13 - 0x10]
test esi, esi
jne 0x18000a842
mov rsi, qword [rdi]
cmp dword [rdi + 8], 0
je 0x18000a8d2
cmp dword [rdi + 0x10], 0
jge 0x18000a817
cmp dword [rcx - 0xc], 0
jge 0x18000a807
mov ecx, 0x80070057
call fcn.180001050
int3
mov dword [rcx - 0x10], r15d
mov rax, qword [rbp + 0x50]
mov byte [rax], 0
jmp 0x18000a8d2
mov eax, ebx
lock xadd dword [rdi + 0x10], eax
dec eax
test eax, eax
jg 0x18000a830
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + reloc.WS2_32.dll_htonl]
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x18]
add rax, 0x18
jmp 0x18000a8ce
test r13, r13
jne 0x18000a852
mov ecx, 0x80070057
call fcn.180001050
int3
mov r14d, dword [rcx - 0x10]
mov r12, r13
sub r12, rcx
test esi, esi
jns 0x18000a86b
mov ecx, 0x80070057
call fcn.180001050
int3
mov edx, 1
sub edx, dword [rdi + 0x10]
mov eax, dword [rdi + 0xc]
sub eax, esi
or eax, edx
jge 0x18000a88b
mov edx, esi
lea rcx, [rbp + 0x50]
call fcn.1800016f0
mov rcx, qword [rbp + 0x50]
mov rdi, rsi
movsxd rdx, dword [rcx - 0xc]
mov r9, rsi
cmp r12, r14
ja 0x18000a8a5
lea r8, [r12 + rcx]
call fcn.180010150
jmp 0x18000a8ad
mov r8, r13
call fcn.180010694
mov rax, qword [rbp + 0x50]
cmp esi, dword [rax - 0xc]
jg 0x18000a8c3
mov dword [rax - 0x10], esi
mov rax, qword [rbp + 0x50]
mov byte [rdi + rax], 0
jmp 0x18000a8d2
mov ecx, 0x80070057
call fcn.180001050
int3
mov qword [rbp + 0x50], rax
mov rdx, qword [rbp - 0x48]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18000a8f0
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
lea rdx, str.true
mov rcx, qword [rbp + 0x50]
call fcn.180011404
test eax, eax
sete al
mov ecx, r15d
test al, al
setne cl
mov dword [0x18003a0c4], ecx
mov r9, qword [0x18003a0e0]
lea r8, [0x180030830]
lea rdx, [0x180030ff4]
lea rcx, [rbp + 0x58]
call fcn.18000b890
nop
mov rdx, qword [rbp + 0x58]
mov r8d, dword [rdx - 0x10]
lea rcx, [rbp - 0x40]
call fcn.180004550
nop
mov r13, qword [rax]
lea rdx, [r13 - 0x18]
mov rcx, qword [rbp + 0x58]
lea rdi, [rcx - 0x18]
cmp rdx, rdi
je 0x18000aa8f
cmp dword [rdi + 0x10], 0
jl 0x18000a998
mov rax, qword [rdi]
cmp qword [rdx], rax
jne 0x18000a998
mov rcx, rdx
call fcn.1800013c0
mov rsi, rax
mov ecx, ebx
lock xadd dword [rdi + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x18000a98f
mov rcx, qword [rdi]
mov r8, qword [rcx]
mov rdx, rdi
call qword [rreloc.WS2_32.dll_htonl + 8]
lea rax, [rsi + 0x18]
jmp 0x18000aa8b
movsxd rsi, dword [r13 - 0x10]
test esi, esi
jne 0x18000a9ff
mov rsi, qword [rdi]
cmp dword [rdi + 8], 0
je 0x18000aa8f
cmp dword [rdi + 0x10], 0
jge 0x18000a9d4
cmp dword [rcx - 0xc], 0
jge 0x18000a9c4
mov ecx, 0x80070057
call fcn.180001050
int3
mov dword [rcx - 0x10], r15d
mov rax, qword [rbp + 0x58]
mov byte [rax], 0
jmp 0x18000aa8f
mov eax, ebx
lock xadd dword [rdi + 0x10], eax
dec eax
test eax, eax
jg 0x18000a9ed
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + reloc.WS2_32.dll_htonl]
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x18]
add rax, 0x18
jmp 0x18000aa8b
test r13, r13
jne 0x18000aa0f
mov ecx, 0x80070057
call fcn.180001050
int3
mov r14d, dword [rcx - 0x10]
mov r12, r13
sub r12, rcx
test esi, esi
jns 0x18000aa28
mov ecx, 0x80070057
call fcn.180001050
int3
mov edx, 1
sub edx, dword [rdi + 0x10]
mov eax, dword [rdi + 0xc]
sub eax, esi
or eax, edx
jge 0x18000aa48
mov edx, esi
lea rcx, [rbp + 0x58]
call fcn.1800016f0
mov rcx, qword [rbp + 0x58]
mov rdi, rsi
movsxd rdx, dword [rcx - 0xc]
mov r9, rsi
cmp r12, r14
ja 0x18000aa62
lea r8, [r12 + rcx]
call fcn.180010150
jmp 0x18000aa6a
mov r8, r13
call fcn.180010694
mov rax, qword [rbp + 0x58]
cmp esi, dword [rax - 0xc]
jg 0x18000aa80
mov dword [rax - 0x10], esi
mov rax, qword [rbp + 0x58]
mov byte [rdi + rax], 0
jmp 0x18000aa8f
mov ecx, 0x80070057
call fcn.180001050
int3
mov qword [rbp + 0x58], rax
mov rdx, qword [rbp - 0x40]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18000aaad
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
mov r9, qword [0x18003a0e0]
lea r8, [0x180030830]
lea rdx, [0x180030ff8]
lea rcx, [rbp - 0x50]
call fcn.18000b890
nop
mov dword [rbp + 0x48], r15d
lea r8, [rbp + 0x48]
lea rdx, [0x180030dec]
mov rcx, qword [rbp - 0x50]
call fcn.180011794
mov rdx, qword [rbp + 0x58]
mov r8d, dword [rdx - 0x10]
test r8d, r8d
jle 0x18000ab65
mov eax, dword [rbp + 0x48]
dec eax
cmp eax, 0xfffd
ja 0x18000ab65
lea rcx, [rdx - 0x18]
mov rdi, qword [0x18003a0b8]
add rdi, 0xffffffffffffffe8
cmp rcx, rdi
je 0x18000ab5a
cmp dword [rdi + 0x10], 0
jl 0x18000ab4e
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x18000ab4e
call fcn.1800013c0
mov rsi, rax
mov ecx, ebx
lock xadd dword [rdi + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x18000ab41
mov rcx, qword [rdi]
mov r8, qword [rcx]
mov rdx, rdi
call qword [rreloc.WS2_32.dll_htonl + 8]
lea rax, [rsi + 0x18]
mov qword [0x18003a0b8], rax
jmp 0x18000ab5a
lea rcx, [0x18003a0b8]
call fcn.180001590
mov eax, dword [rbp + 0x48]
mov dword [0x18003a0c0], eax
jmp 0x18000ab6c
mov dword [0x18003a0b0], r15d
mov r9, qword [0x18003a0e0]
lea r8, [0x180030830]
lea rdx, [0x180030ffc]
lea rcx, [rbp - 0x38]
call fcn.18000b890
nop
mov rdx, rax
lea rcx, [0x18003a0c8]
call fcn.1800022e0
nop
mov rdx, qword [rbp - 0x38]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18000abb9
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
mov rdx, qword [0x18003a0c8]
mov r8d, dword [rdx - 0x10]
lea rcx, [rbp - 0x28]
call fcn.180004550
nop
mov rdx, rax
lea rcx, [0x18003a0c8]
call fcn.1800022e0
nop
mov rdx, qword [rbp - 0x28]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18000abfc
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
mov rax, qword [0x18003a0c8]
cmp dword [rax - 0x10], 0
jne 0x18000ac22
mov r8d, 4
lea rdx, str.NULL
lea rcx, [0x18003a0c8]
call fcn.180001590
mov r9, qword [0x18003a0e0]
lea r8, [0x180031008]
lea rdx, str.mode
lea rcx, [rbp - 0x58]
call fcn.18000b890
nop
lea rdx, [0x180031014]
mov rcx, qword [rbp - 0x58]
call fcn.180011404
test eax, eax
sete al
mov ecx, r15d
test al, al
setne cl
cmp dword [0x18003a0d0], 0
je 0x18000ac7d
mov eax, dword [0x1800386c4]
cmp ecx, dword [0x18003a0d4]
cmovne eax, r15d
mov dword [0x1800386c4], eax
mov dword [0x18003a0d4], ecx
mov eax, 1
mov dword [0x18003a0d0], eax
mov r9, qword [0x18003a0e0]
lea r8, [0x180030830]
lea rdx, str.stop
lea rcx, [rbp + 0x60]
call fcn.18000b890
lea rdx, [0x180031014]
mov rcx, qword [rbp + 0x60]
call fcn.180011404
test eax, eax
sete al
test al, al
je 0x18000acf7
mov r9, qword [0x18003a0e0]
lea r8, [0x180030830]
lea rdx, str.stop
lea rcx, str.para
call qword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
xor edx, edx
mov rcx, qword [0x180039e08]
call qword [sym.imp.KERNEL32.dll_FreeLibraryAndExitThread]
mov rcx, qword [0x18003a0a0]
test rcx, rcx
je 0x18000ad09
call qword [sym.imp.KERNEL32.dll_SetEvent]
mov rdx, qword [rbp + 0x60]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18000ad28
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
nop
mov rdx, qword [rbp - 0x58]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18000ad47
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
nop
mov rdx, qword [rbp - 0x50]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18000ad66
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
nop
mov rdx, qword [rbp + 0x58]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18000ad85
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
nop
mov rdx, qword [rbp + 0x50]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], ebx
dec ebx
test ebx, ebx
jg 0x18000ada1
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
add rsp, 0x78
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret