Function at 0x4016d8
Capabilities:
Check for software breakpoints
Extract resource via kernel32 functions
Read .ini file
Terminate process

Disassembly:
invalid
push ebp
mov ebp, esp
add esp, 0xfffff604
push ebx
push esi
push edi
mov edi, dword [ebp + 0xc]
mov ebx, dword [ebp + 8]
push 0x2349
push 0x68
push ebx
call sub.KERNEL32.DLL_FindResourceA
mov esi, eax
test esi, esi
jne 0x401712
mov eax, dword [ebp + 0x14]
push eax
call fcn.00401370
pop ecx
test eax, eax
jne 0x401758
xor eax, eax
jmp 0x401c80
push esi
push ebx
call sub.KERNEL32.DLL_LoadResource
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jne 0x401729
xor eax, eax
jmp 0x401c80
je 0x40172e
jne 0x40172e
jmp 0x4016ba
mov edx, dword [ebp - 4]
push edx
call sub.KERNEL32.DLL_LockResource
mov dword [0x45d16c], eax
cmp dword [0x45d16c], 0
jne 0x40174c
xor eax, eax
jmp 0x401c80
push esi
push ebx
call sub.KERNEL32.DLL_SizeofResource
mov edx, dword [ebp + 0x14]
mov dword [edx], eax
push 0x1e0
mov ecx, dword [ebp + 0x14]
mov eax, dword [ecx]
sub eax, 0x1e0
add eax, dword [0x45d16c]
push eax
push edi
call fcn.004055c4
add esp, 0xc
mov edx, sub.KERNEL32.DLL_CreateFileA
mov dword [ebp - 8], edx
mov esi, dword [ebp - 8]
mov al, byte [esi]
cmp al, 0xcc
je 0x4017fd
mov ecx, 0x416174
mov dword [ebp - 0xc], ecx
mov esi, dword [ebp - 0xc]
mov al, byte [esi]
cmp al, 0xcc
je 0x4017fd
mov eax, sub.KERNEL32.DLL_CreateFileA
mov dword [ebp - 0x10], eax
mov esi, dword [ebp - 0x10]
mov al, byte [esi]
cmp al, 0xcc
je 0x4017fd
mov edx, sub.KERNEL32.DLL_FindResourceA
mov dword [ebp - 0x14], edx
mov esi, dword [ebp - 0x14]
mov al, byte [esi]
cmp al, 0xcc
je 0x4017fd
mov ecx, sub.KERNEL32.DLL_LoadResource
mov dword [ebp - 0x18], ecx
mov esi, dword [ebp - 0x18]
mov al, byte [esi]
cmp al, 0xcc
je 0x4017fd
push edi
lea edi, [ebp - 0x224]
mov esi, 0x45d180
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
pop edi
lea eax, [ebp - 0x224]
push 0x128
push eax
lea edx, [edi + 0xb8]
push 0x64
push edx
call fcn.00403754
add esp, 0x10
xor ecx, ecx
mov dword [ebp - 0x1c], ecx
cmp dword [edi + 0x1d4], 0
je 0x401a0c
push edi
lea edi, [ebp - 0x540]
mov esi, 0x45d1a0
mov ecx, 0x82
rep movsd dword es:[edi], dword [esi]
pop edi
mov ecx, 0x82
push edi
lea edi, [ebp - 0x748]
mov esi, 0x45d3a9
lea eax, [ebp - 0x748]
rep movsd dword es:[edi], dword [esi]
pop edi
push 0x208
push eax
push 0
call sub.KERNEL32.DLL_GetModuleFileNameA
push 0x5c
lea edx, [ebp - 0x748]
push edx
call fcn.004057a9
lea ecx, [ebp - 0x748]
add esp, 8
sub eax, ecx
lea edx, [ebp - 0x748]
inc eax
lea ecx, [ebp - 0x540]
inc eax
push eax
push edx
push ecx
call sub.KERNEL32.DLL_lstrcpynA
push str.Setting.ini
lea eax, [ebp - 0x540]
push eax
call sub.KERNEL32.DLL_lstrcatA
push edi
lea edi, [ebp - 0x75c]
mov esi, 0x45d5b2
mov ecx, 5
rep movsd dword es:[edi], dword [esi]
pop edi
lea eax, [ebp - 0x540]
push eax
lea edx, [ebp - 0x75c]
push 0x14
push edx
push 0x45d951
push str.IsShow
push str.ShowDlg
call sub.KERNEL32.DLL_GetPrivateProfileStringA
lea ecx, [ebp - 0x75c]
push ecx
call fcn.00407ce4
pop ecx
dec eax
jne 0x4018e3
lea eax, [ebp - 0x540]
push eax
push 0
call fcn.004015dc
add esp, 8
push edi
lea edi, [ebp - 0x7c0]
mov esi, 0x45d5c7
mov ecx, 0x19
rep movsd dword es:[edi], dword [esi]
pop edi
mov ecx, 5
push edi
lea edi, [ebp - 0x7d4]
mov esi, 0x45d62c
lea eax, [ebp - 0x540]
rep movsd dword es:[edi], dword [esi]
pop edi
mov ecx, 0x3e
push edi
lea edi, [ebp - 0x8d0]
mov esi, 0x45d641
lea edx, [ebp - 0x7c0]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
pop edi
mov esi, 0x45d73c
push edi
lea edi, [ebp - 0x9fc]
mov ecx, 0x4b
rep movsd dword es:[edi], dword [esi]
pop edi
push eax
push 0x64
push edx
push str.127.0.0.1
push str.ServerName
push 0x45d953
call sub.KERNEL32.DLL_GetPrivateProfileStringA
lea ecx, [ebp - 0x540]
lea eax, [ebp - 0x7d4]
push ecx
push 0x14
push eax
push str.3001
push str.PORT
push str.ConnectServer
call sub.KERNEL32.DLL_GetPrivateProfileStringA
lea edx, [ebp - 0x8d0]
push edx
lea ecx, [ebp - 0x7d4]
push ecx
call fcn.00407ce4
pop ecx
push eax
lea eax, [ebp - 0x7c0]
push eax
call dword [0x461ea4]
test eax, eax
je 0x401a0c
push 0x45d9c8
lea edx, [ebp - 0x8d0]
push edx
push 0x45d9b9
push eax
push 0x45d99e
push str._hs_ld_hs_hs_hs
lea ecx, [ebp - 0x9fc]
push ecx
call sub.USER32.DLL_wsprintfA
add esp, 0x1c
lea eax, [ebp - 0x9fc]
push 0
push 0x45d9d6
push eax
push 0
call fcn.00401644
add esp, 0x10
call sub.KERNEL32.DLL_GetCurrentProcessId
push eax
push 0
push 1
call sub.KERNEL32.DLL_OpenProcess
mov ebx, eax
push 0
push ebx
call sub.KERNEL32.DLL_TerminateProcess
push ebx
call sub.KERNEL32.DLL_CloseHandle
xor eax, eax
jmp 0x401c80
push 0x1e0
push edi
lea edx, [ebp - 0x204]
push edx
call fcn.004055c4
add esp, 0xc
push 0x1e0
lea ecx, [ebp - 0x204]
push ecx
push edi
call fcn.004055c4
add esp, 0xc
lea eax, [ebp - 0x328]
push eax
mov edx, dword [ebp - 0x1c]
push edx
call dword [0x461eb0]
test eax, eax
jne 0x401c40
lea ecx, [ebp - 0x328]
push ecx
lea eax, [ebp - 0x20]
push eax
push 0x1df
call dword [0x461eac]
test eax, eax
jne 0x401c40
lea edx, [ebp - 0x328]
push edx
lea ecx, [ebp - 0x1f]
push ecx
push 0x1de
call dword [0x461eac]
test eax, eax
jne 0x401c40
lea eax, [ebp - 0x328]
push eax
lea edx, [ebp - 0x1e]
push edx
push 0x1dd
call dword [0x461eac]
test eax, eax
jne 0x401c40
lea ecx, [ebp - 0x328]
push ecx
lea eax, [ebp - 0x1d]
push eax
push 0x1dc
call dword [0x461eac]
test eax, eax
jne 0x401c40
xor ebx, ebx
lea edx, [ebp - 0x338]
mov ecx, ebx
add edx, ebx
lea eax, [ebp - 0x328]
add cx, 0x1cc
push eax
push edx
push ecx
call dword [0x461eac]
test eax, eax
jne 0x401af1
inc ebx
cmp ebx, 0x10
jl 0x401ac9
mov al, byte [edi + 0x1dc]
mov byte [ebp - 0x21], al
mov dl, byte [edi + 0x1dd]
mov byte [ebp - 0x22], dl
lea edx, [ebp - 0x328]
mov cl, byte [edi + 0x1de]
mov byte [ebp - 0x23], cl
lea ecx, [ebp - 0x24]
mov al, byte [edi + 0x1df]
mov byte [ebp - 0x24], al
push 0
push 0x10
push edx
push ecx
lea eax, [ebp - 0x23]
push eax
lea edx, [ebp - 0x22]
push edx
lea ecx, [ebp - 0x21]
push ecx
lea eax, [ebp - 0x338]
push eax
call dword [0x461ea8]
test eax, eax
jne 0x401c40
mov dl, byte [ebp - 0x21]
cmp dl, byte [ebp - 0x1d]
jne 0x401c38
mov cl, byte [ebp - 0x22]
cmp cl, byte [ebp - 0x1e]
jne 0x401c38
mov al, byte [ebp - 0x23]
cmp al, byte [ebp - 0x1f]
jne 0x401c38
mov dl, byte [ebp - 0x24]
cmp dl, byte [ebp - 0x20]
jne 0x401c38
cmp dword [edi + 0x1d8], 0
jne 0x401bc2
xor ebx, ebx
push 0
lea eax, [ebp - 0x328]
push 0x10
lea esi, [edi + ebx*4]
push eax
mov eax, esi
add eax, 0x9b
mov edx, esi
add edx, 0x9a
push eax
mov ecx, esi
push edx
add ecx, 0x99
add esi, 0x98
push ecx
push esi
lea eax, [ebp - 0x338]
push eax
call dword [0x461ea8]
inc ebx
cmp ebx, 8
jl 0x401b80
push 0x98
lea edx, [edi + 0x98]
push edx
push 0x64
push edi
call fcn.0040350c
add esp, 0x10
push edi
push edi
call fcn.00403878
add esp, 8
lea ecx, [ebp - 0x338]
push 0x10
push ecx
push 0x4622b8
call fcn.004055c4
add esp, 0xc
mov al, byte [ebp - 0x1d]
mov byte [0x4622b4], al
mov dl, byte [ebp - 0x1e]
mov byte [0x4622b5], dl
mov cl, byte [ebp - 0x1f]
mov byte [0x4622b6], cl
mov bl, byte [ebp - 0x20]
mov byte [0x4622b7], bl
mov bl, byte [0x4622b7]
push ebx
push ecx
push edx
push eax
push 0x4622b8
call dword [0x461e8c]
mov eax, 1
jmp 0x401c80
inc dword [ebp - 0x1c]
jmp 0x401a21
mov edx, dword [edi + 0x1d0]
push edx
lea ecx, [edi + 0xb8]
push ecx
add edi, 0xcc
push edi
push 0
call fcn.00401644
add esp, 0x10
call sub.KERNEL32.DLL_GetCurrentProcessId
push eax
push 0
push 1
call sub.KERNEL32.DLL_OpenProcess
mov ebx, eax
push 0
push ebx
call sub.KERNEL32.DLL_TerminateProcess
push ebx
call sub.KERNEL32.DLL_CloseHandle
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret