Function at 0x4016fc
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 0x401736
mov eax, dword [ebp + 0x14]
push eax
call fcn.00401394
pop ecx
test eax, eax
jne 0x40177c
xor eax, eax
jmp 0x401ca4
push esi
push ebx
call sub.KERNEL32.DLL_LoadResource
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jne 0x40174d
xor eax, eax
jmp 0x401ca4
je 0x401752
jne 0x401752
jmp 0x4016de
mov edx, dword [ebp - 4]
push edx
call sub.KERNEL32.DLL_LockResource
mov dword [0x45d16c], eax
cmp dword [0x45d16c], 0
jne 0x401770
xor eax, eax
jmp 0x401ca4
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.00405724
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 0x401821
mov ecx, 0x4162d4
mov dword [ebp - 0xc], ecx
mov esi, dword [ebp - 0xc]
mov al, byte [esi]
cmp al, 0xcc
je 0x401821
mov eax, sub.KERNEL32.DLL_CreateFileA
mov dword [ebp - 0x10], eax
mov esi, dword [ebp - 0x10]
mov al, byte [esi]
cmp al, 0xcc
je 0x401821
mov edx, sub.KERNEL32.DLL_FindResourceA
mov dword [ebp - 0x14], edx
mov esi, dword [ebp - 0x14]
mov al, byte [esi]
cmp al, 0xcc
je 0x401821
mov ecx, sub.KERNEL32.DLL_LoadResource
mov dword [ebp - 0x18], ecx
mov esi, dword [ebp - 0x18]
mov al, byte [esi]
cmp al, 0xcc
je 0x401821
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.004038b4
add esp, 0x10
xor ecx, ecx
mov dword [ebp - 0x1c], ecx
cmp dword [edi + 0x1d4], 0
je 0x401a30
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.00405909
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 0x45d96f
push str.IsShow
push str.ShowDlg
call sub.KERNEL32.DLL_GetPrivateProfileStringA
lea ecx, [ebp - 0x75c]
push ecx
call fcn.00407e44
pop ecx
dec eax
jne 0x401907
lea eax, [ebp - 0x540]
push eax
push 0
call fcn.00401600
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 0x45d971
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.00407e44
pop ecx
push eax
lea eax, [ebp - 0x7c0]
push eax
call dword [0x461f28]
test eax, eax
je 0x401a30
push 0x45d9e6
lea edx, [ebp - 0x8d0]
push edx
push 0x45d9d7
push eax
push 0x45d9bc
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 0x45d9f4
push eax
push 0
call fcn.00401668
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 0x401ca4
push 0x1e0
push edi
lea edx, [ebp - 0x204]
push edx
call fcn.00405724
add esp, 0xc
push 0x1e0
lea ecx, [ebp - 0x204]
push ecx
push edi
call fcn.00405724
add esp, 0xc
lea eax, [ebp - 0x328]
push eax
mov edx, dword [ebp - 0x1c]
push edx
call dword [0x461f34]
test eax, eax
jne 0x401c64
lea ecx, [ebp - 0x328]
push ecx
lea eax, [ebp - 0x20]
push eax
push 0x1df
call dword [0x461f30]
test eax, eax
jne 0x401c64
lea edx, [ebp - 0x328]
push edx
lea ecx, [ebp - 0x1f]
push ecx
push 0x1de
call dword [0x461f30]
test eax, eax
jne 0x401c64
lea eax, [ebp - 0x328]
push eax
lea edx, [ebp - 0x1e]
push edx
push 0x1dd
call dword [0x461f30]
test eax, eax
jne 0x401c64
lea ecx, [ebp - 0x328]
push ecx
lea eax, [ebp - 0x1d]
push eax
push 0x1dc
call dword [0x461f30]
test eax, eax
jne 0x401c64
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 [0x461f30]
test eax, eax
jne 0x401b15
inc ebx
cmp ebx, 0x10
jl 0x401aed
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 [0x461f2c]
test eax, eax
jne 0x401c64
mov dl, byte [ebp - 0x21]
cmp dl, byte [ebp - 0x1d]
jne 0x401c5c
mov cl, byte [ebp - 0x22]
cmp cl, byte [ebp - 0x1e]
jne 0x401c5c
mov al, byte [ebp - 0x23]
cmp al, byte [ebp - 0x1f]
jne 0x401c5c
mov dl, byte [ebp - 0x24]
cmp dl, byte [ebp - 0x20]
jne 0x401c5c
cmp dword [edi + 0x1d8], 0
jne 0x401be6
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 [0x461f2c]
inc ebx
cmp ebx, 8
jl 0x401ba4
push 0x98
lea edx, [edi + 0x98]
push edx
push 0x64
push edi
call fcn.0040366c
add esp, 0x10
push edi
push edi
call fcn.004039d8
add esp, 8
lea ecx, [ebp - 0x338]
push 0x10
push ecx
push 0x46233c
call fcn.00405724
add esp, 0xc
mov al, byte [ebp - 0x1d]
mov byte [0x462338], al
mov dl, byte [ebp - 0x1e]
mov byte [0x462339], dl
mov cl, byte [ebp - 0x1f]
mov byte [0x46233a], cl
mov bl, byte [ebp - 0x20]
mov byte [0x46233b], bl
mov bl, byte [0x46233b]
push ebx
push ecx
push edx
push eax
push 0x46233c
call dword [0x461f10]
mov eax, 1
jmp 0x401ca4
inc dword [ebp - 0x1c]
jmp 0x401a45
mov edx, dword [edi + 0x1d0]
push edx
lea ecx, [edi + 0xb8]
push ecx
add edi, 0xcc
push edi
push 0
call fcn.00401668
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