Function at 0x402d90
Capabilities:
Create udp socket
Hide graphical window
Initialize winsock library
Read .ini file
Resolve dns
Terminate thread

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x398
mov eax, dword [0x42b040]
xor eax, esp
mov dword [esp + 0x394], eax
push esi
push edi
mov edi, dword [ebp + 8]
push 1
mov dword [esp + 0x14], edi
call dword [sym.imp.KERNEL32.dll_SetErrorMode]
push 0x404db0
call dword [sym.imp.KERNEL32.dll_SetUnhandledExceptionFilter]
mov esi, dword [sym.imp.USER32.dll_LoadStringA]
push 0x64
push 0x4303b0
push 0x65
push edi
mov dword [0x4303ac], eax
call esi
push 0x64
push 0x430348
push 0x69
push edi
call esi
mov esi, dword [sym.imp.USER32.dll_LoadIconA]
push 0x68
push edi
mov dword [esp + 0x1e8], 0x30
mov dword [esp + 0x1ec], 3
mov dword [esp + 0x1f0], 0x403500
mov dword [esp + 0x1f4], 0
mov dword [esp + 0x1f8], 0
mov dword [esp + 0x1fc], edi
call esi
push 0x7f00
push 0
mov dword [esp + 0x200], eax
call dword [sym.imp.USER32.dll_LoadCursorA]
push 0
mov dword [esp + 0x200], eax
call dword [sym.imp.GDI32.dll_GetStockObject]
push 0x68
push dword [esp + 0x1f8]
mov dword [esp + 0x208], eax
mov dword [esp + 0x20c], 0x69
mov dword [esp + 0x210], 0x430348
call esi
mov dword [esp + 0x20c], eax
lea eax, [esp + 0x1e0]
push eax
call dword [sym.imp.USER32.dll_RegisterClassExA]
push 0
mov esi, dword [sym.imp.USER32.dll_CreateWindowExA]
push edi
push 0
push 0
push 0x258
push 0x258
push 0
push closesocket
push 0xa0000
push 0x4303b0
push 0x430348
push 0
mov dword [0x430344], edi
call esi
mov dword [0x430340], eax
test eax, eax
jne 0x402ee8
pop edi
pop esi
mov ecx, dword [esp + 0x394]
xor ecx, esp
call fcn.00408618
mov esp, ebp
pop ebp
ret 0x10
push 0
push edi
push 0x6a
push eax
push 0
push 0
push 0
push 0
push 0x50000000
push 0
push str.msctls_statusbar32
push 0
call esi
mov edi, dword [sym.imp.USER32.dll_ShowWindow]
mov esi, eax
push 0
push esi
call edi
lea eax, [esp + 0x1d0]
mov dword [esp + 0x1d0], 0x87
push eax
push 3
push 0x404
push esi
mov dword [esp + 0x1e4], 0x101
mov dword [esp + 0x1e8], 0xffffffff
call dword [sym.imp.USER32.dll_SendMessageA]
push dword [ebp + 0x14]
push dword [0x430340]
call edi
push dword [0x430340]
call dword [sym.imp.USER32.dll_UpdateWindow]
push str.STANDBY
lea eax, [esp + 0x29c]
push str.__1.0.0___JoinServer__MySQL____s_
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea eax, [esp + 0x298]
push eax
push dword [0x430340]
call dword [sym.imp.USER32.dll_SetWindowTextA]
mov eax, dword [0x430340]
push 0x4274b0
push ecx
mov dword [0x42c154], eax
call fcn.00404570
push str..LOGLOG_ACCOUNT
push ecx
call fcn.00404570
push str..LOGLOG_QUERY
push ecx
call fcn.00404570
lea eax, [esp + 0x40]
push eax
push 0x202
call dword [sym.imp.WS2_32.dll_WSAStartup]
test eax, eax
jne 0x403442
push 0x40
push eax
lea eax, [esp + 0x260]
push eax
call fcn.0040a260
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [esp + 0x264]
add esp, 0xc
xorps xmm0, xmm0
movaps xmmword [esp + 0x1e0], xmm0
movaps xmmword [esp + 0x1f0], xmm0
movaps xmmword [esp + 0x230], xmm0
push str..JoinServer.ini
push 0x40
push eax
push 0x426f06
push str.DataBaseHost
push str.JoinServerInfo
movaps xmmword [esp + 0x258], xmm0
movaps xmmword [esp + 0x228], xmm0
movaps xmmword [esp + 0x238], xmm0
call esi
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
push str..JoinServer.ini
push 0xcea
push str.DataBasePort
push str.JoinServerInfo
call edi
push str..JoinServer.ini
movzx eax, ax
push 0x20
mov dword [esp + 0x20], eax
lea eax, [esp + 0x1e8]
push eax
push 0x426f06
push str.DataBaseUser
push str.JoinServerInfo
call esi
push str..JoinServer.ini
push 0x20
lea eax, [esp + 0x238]
push eax
push 0x426f06
push str.DataBasePass
push str.JoinServerInfo
call esi
push str..JoinServer.ini
push 0x20
lea eax, [esp + 0x218]
push eax
push 0x426f06
push str.DataBaseName
push str.JoinServerInfo
call esi
push str..JoinServer.ini
push 0xb
push 0x430330
push 0x426f06
push str.GlobalPassword
push str.JoinServerInfo
call esi
push str..JoinServer.ini
push 0xdaa2
push str.JoinServerPort
push str.JoinServerInfo
call edi
push str..JoinServer.ini
movzx eax, ax
xorps xmm0, xmm0
push 0x10
mov dword [esp + 0x24], eax
lea eax, [esp + 0x1d8]
push eax
push str.127.0.0.1
push str.ConnectServerAddress
push str.JoinServerInfo
movaps xmmword [esp + 0x1e8], xmm0
call esi
push str..JoinServer.ini
push 0xd905
push str.ConnectServerPort
push str.JoinServerInfo
call edi
push str..JoinServer.ini
push 0
push str.CaseSensitive
movzx eax, ax
push str.JoinServerInfo
mov dword [esp + 0x30], eax
call edi
push str..JoinServer.ini
push 0
push str.EnableAutoReg
push str.JoinServerInfo
mov dword [0x43033c], eax
call edi
push str..JoinServer.ini
push 4
push str.AutoRegMinLen
push str.JoinServerInfo
mov dword [0x43032c], eax
call edi
sub esp, 0x18
mov word [0x430328], ax
mov edx, esp
lea ecx, [esp + 0x228]
xorps xmm0, xmm0
lea esi, [ecx + 1]
movups xmmword [edx], xmm0
mov dword [edx + 0x10], 0
mov dword [edx + 0x14], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4031b0
sub ecx, esi
lea eax, [esp + 0x228]
push ecx
push eax
mov ecx, edx
call fcn.00402430
sub esp, 0x18
lea ecx, [esp + 0x260]
mov edx, esp
lea esi, [ecx + 1]
xorps xmm0, xmm0
movups xmmword [edx], xmm0
mov dword [edx + 0x10], 0
mov dword [edx + 0x14], 0
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4031f0
sub ecx, esi
lea eax, [esp + 0x260]
push ecx
push eax
mov ecx, edx
call fcn.00402430
sub esp, 0x18
lea ecx, [esp + 0x228]
mov edx, esp
lea esi, [ecx + 1]
xorps xmm0, xmm0
movups xmmword [edx], xmm0
mov dword [edx + 0x10], 0
mov dword [edx + 0x14], 0
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x403230
sub ecx, esi
lea eax, [esp + 0x228]
push ecx
push eax
mov ecx, edx
call fcn.00402430
sub esp, 0x18
lea ecx, [esp + 0x2b8]
mov edx, esp
lea esi, [ecx + 1]
xorps xmm0, xmm0
movups xmmword [edx], xmm0
mov dword [edx + 0x10], 0
mov dword [edx + 0x14], 0
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x403270
sub ecx, esi
lea eax, [esp + 0x2b8]
push ecx
push eax
mov ecx, edx
call fcn.00402430
push dword [esp + 0x78]
call fcn.004050f0
test al, al
jne 0x4032aa
push str.Could_not_connect_to_database
push 1
call fcn.00408230
add esp, 8
jmp 0x403458
push dword [esp + 0x1c]
call fcn.00406fc0
test al, al
jne 0x403314
mov ecx, dword [0x42c12c]
mov dword [0x42c120], 0
test ecx, ecx
je 0x4032db
mov eax, dword [ecx]
push 1
call dword [eax]
mov dword [0x42c12c], 0
mov esi, dword [0x42c124]
mov ecx, 0x42c124
push dword [esi + 4]
push 0x42c124
call fcn.00406530
mov dword [esi + 4], esi
mov ecx, 0x42c11c
mov dword [esi], esi
mov dword [esi + 8], esi
mov dword [0x42c128], 0
call fcn.00406050
jmp 0x403458
push 0
push 2
push 2
call dword [sym.imp.WS2_32.dll_socket]
mov dword [0x42d39c], eax
cmp eax, 0xffffffff
jne 0x403338
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push str._SocketUDP__WSASocket___failed_with_error:__d
jmp 0x403393
mov eax, 2
mov word [0x42d3a0], ax
lea eax, [esp + 0x1d0]
push eax
call dword [sym.imp.WS2_32.dll_inet_addr]
push dword [esp + 0x20]
mov dword [0x42d3a4], eax
call dword [sym.imp.WS2_32.dll_htons]
cmp dword [0x42d3a4], 0xffffffff
mov word [0x42d3a2], ax
jne 0x403406
lea eax, [esp + 0x1d0]
push eax
call dword [sym.imp.WS2_32.dll_gethostbyname]
mov ecx, eax
test ecx, ecx
jne 0x4033ef
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push str._SocketUDP__gethostbyname___failed_with_error:__d
push 1
call fcn.00408230
mov eax, dword [0x42d3b0]
add esp, 0xc
test eax, eax
je 0x4033c5
push 0
push eax
call dword [sym.imp.KERNEL32.dll_TerminateThread]
push dword [0x42d3b0]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [0x42d3b0], 0
mov eax, dword [0x42d39c]
cmp eax, 0xffffffff
je 0x4033e0
push eax
call dword [sym.imp.WS2_32.dll_closesocket]
mov dword [0x42d39c], 0xffffffff
mov ecx, 0x42d308
call fcn.00407280
jmp 0x4032b7
movsx eax, word [ecx + 0xa]
push eax
mov eax, dword [ecx + 0xc]
push dword [eax]
push 0x42d3a4
call fcn.00409ce0
add esp, 0xc
push 0x1000
push 0
push 0x42e3b8
call fcn.0040a260
add esp, 8
mov dword [0x42f3b8], 0
call fcn.004027f0
mov esi, dword [sym.imp.USER32.dll_SetTimer]
push 0
push 0x3e8
push 0x64
push dword [0x430340]
call esi
jmp 0x40345e
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push str.WSAStartup___failed_with_error:__d
push 1
call fcn.00408230
add esp, 0xc
mov esi, dword [sym.imp.USER32.dll_SetTimer]
push 0
push 0x7d0
push 0x65
push dword [0x430340]
call esi
push 0x69
push dword [esp + 0x14]
call dword [sym.imp.USER32.dll_LoadAcceleratorsA]
mov esi, dword [sym.imp.USER32.dll_GetMessageA]
push 0
push 0
mov dword [esp + 0x18], eax
lea eax, [esp + 0x2c]
push 0
push eax
call esi
test eax, eax
je 0x4034da
mov edi, dword [sym.imp.USER32.dll_TranslateMessage]
nop dword [eax]
lea eax, [esp + 0x24]
push eax
push dword [esp + 0x14]
push dword [esp + 0x2c]
call dword [sym.imp.USER32.dll_TranslateAcceleratorA]
test eax, eax
jne 0x4034c9
lea eax, [esp + 0x24]
push eax
call edi
lea eax, [esp + 0x24]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageA]
push 0
push 0
push 0
lea eax, [esp + 0x30]
push eax
call esi
test eax, eax
jne 0x4034a0
push dword [0x4303ac]
call dword [sym.imp.KERNEL32.dll_SetUnhandledExceptionFilter]
mov ecx, dword [esp + 0x39c]
mov eax, dword [esp + 0x2c]
pop edi
pop esi
xor ecx, esp
call fcn.00408618
mov esp, ebp
pop ebp
ret 0x10