Function at 0x437ee0
Capabilities:
Read .ini file

Disassembly:
push 0xffffffffffffffff
push 0x4a93b8
mov eax, dword fs:[0]
push eax
sub esp, 0x28
push ebx
push ebp
push esi
push edi
mov eax, dword [0x5564a4]
xor eax, esp
push eax
lea eax, [esp + 0x3c]
mov dword fs:[0], eax
mov ebp, ecx
mov ecx, dword [0x55865c]
xor esi, esi
push esi
call fcn.0043f4a0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x8c]
call eax
test eax, eax
jne 0x438154
movzx edi, byte [esp + 0x4c]
cmp dword [ebp + edi*4 + 0x2954], esi
je 0x4384fe
lea ecx, [esp + 0x34]
mov dword [esp + 0x2c], esi
call fcn.004356e0
push 4
lea ecx, [esp + 0x30]
push ecx
push str.WorldCode
push str.SoftwareCCRRFonline_
push reloc.WS2_32.dll_bind
lea ecx, [esp + 0x48]
mov dword [esp + 0x58], esi
call fcn.00435700
cmp eax, esi
je 0x43813e
lea edx, [esp + 0x2c]
push edx
call fcn.00476c14
mov dword [ebp + 0x2960], eax
mov dword [ebp + edi*4 + 0x2948], 1
mov eax, dword [ebp + 0x2960]
lea ebx, [edi + edi*4]
imul edi, edi, 0x6e0
add ebx, ebx
add ebx, ebx
add ebx, ebx
add eax, ebx
imul eax, eax, 0x2c
mov cl, byte [eax + ebp + 4]
mov byte [edi + ebp + 0x1528], cl
mov edx, dword [ebp + 0x2960]
add edi, ebp
add edx, ebx
imul edx, edx, 0x2c
mov al, byte [edx + ebp + 5]
mov byte [edi + 0x1529], al
mov ecx, dword [ebp + 0x2960]
add ecx, ebx
imul ecx, ecx, 0x2c
mov dx, word [ecx + ebp + 0x28]
add esp, 4
mov word [edi + 0x154c], dx
mov ecx, dword [0x55865c]
push esi
mov dword [esp + 0x2c], ebx
call fcn.0043f4a0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x24]
call eax
test eax, eax
jne 0x43801e
mov ecx, dword [ebp + 0x2960]
lea eax, [ebx + ecx + 1]
imul eax, eax, 0x2c
add eax, ebp
lea ecx, [edi + 0x1550]
push eax
call fcn.00402cc0
mov edx, dword [ebp + 0x2960]
add edx, ebx
imul ebx, ebx, 0x2c
imul edx, edx, 0x2c
lea esi, [edx + ebp + 6]
add edi, 0x152a
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
lea eax, [ebx + ebp]
lea ecx, [eax + 6]
lea edx, [eax + 0x2c]
movsb byte es:[edi], byte [esi]
xor esi, esi
mov dword [esp + 0x24], ecx
mov dword [esp + 0x20], edx
lea ecx, [eax + 0x28]
lea edx, [eax + 5]
lea ebx, [eax + 0x14a5]
add eax, 4
mov dword [esp + 0x4c], esi
mov dword [esp + 0x30], esi
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], eax
cmp esi, 3
je 0x438127
mov eax, dword [esp + 0x4c]
cmp eax, dword [ebp + 0x2960]
jne 0x4380a7
add dword [esp + 0x4c], 1
mov eax, 0x2c
add dword [esp + 0x14], eax
add dword [esp + 0x18], eax
add dword [esp + 0x1c], eax
add dword [esp + 0x20], eax
add dword [esp + 0x24], eax
mov ecx, dword [esp + 0x14]
mov dl, byte [ecx]
mov eax, dword [esp + 0x18]
mov byte [ebx - 1], dl
mov cl, byte [eax]
mov edx, dword [esp + 0x1c]
mov byte [ebx], cl
mov ax, word [edx]
mov word [ebx + 0x23], ax
mov ecx, dword [0x55865c]
push 0
call fcn.0043f4a0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x24]
call eax
test eax, eax
jne 0x4380f4
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x20]
lea ecx, [ecx + esi + 0x79]
imul ecx, ecx, 0x2c
add ecx, ebp
push edx
call fcn.00402cc0
mov esi, dword [esp + 0x24]
add dword [esp + 0x4c], 1
lea edi, [ebx + 1]
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov eax, 0x2c
add dword [esp + 0x14], eax
add dword [esp + 0x18], eax
add dword [esp + 0x1c], eax
add dword [esp + 0x20], eax
add dword [esp + 0x24], eax
movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0x30]
jmp 0x43812c
mov eax, 0x2c
add esi, 1
add ebx, eax
cmp esi, 0x28
mov dword [esp + 0x30], esi
jl 0x438074
lea ecx, [esp + 0x34]
mov dword [esp + 0x44], 0xffffffff
call fcn.004356f0
jmp 0x4384fe
movzx eax, byte [esp + 0x4c]
cmp dword [ebp + eax*4 + 0x2948], esi
jne 0x4384fe
push 0xff
mov ecx, ebp
call fcn.00437400
movzx eax, al
push eax
mov dword [esp + 0x34], eax
mov eax, dword [ebp + 0x2968]
push str.WorldCount__d
push eax
call fcn.00427200
push eax
call fcn.00426f60
add esp, 0x10
call fcn.0045f338
xor ecx, ecx
cmp eax, esi
setne cl
cmp ecx, esi
jne 0x4381ae
push 0x80004005
call fcn.00401090
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x14], eax
push 1
push str.Server
lea ecx, [esp + 0x1c]
push str._s_d
push ecx
mov dword [esp + 0x54], 1
call fcn.00401990
mov edx, dword [str.serverConfig.dat]
add esp, 0xc
mov ecx, esp
mov dword [esp + 0x30], esp
push edx
call fcn.00401d30
lea eax, [esp + 0x30]
push eax
call fcn.004051d0
mov eax, dword [eax]
mov ebx, dword [esp + 0x1c]
add esp, 8
push eax
push 0xffffffffffffffff
push ebx
push str.ServerList
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov edi, eax
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x438235
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [str.serverConfig.dat]
mov edx, dword [ebp + 0x2968]
push edi
push ebx
push ecx
push str._s_ServerList__s_:_ServerSrcPos__d
push edx
call fcn.00427200
push eax
call fcn.00426f60
add esp, 0x18
mov ecx, ebp
call fcn.004374d0
mov esi, eax
mov eax, dword [ebp + 0x2968]
push esi
push str.LastWorldCode__d
push eax
mov dword [esp + 0x28], esi
call fcn.00427200
push eax
call fcn.00426f60
add esp, 0x10
cmp edi, 0xffffffff
jne 0x4382ce
mov ecx, dword [ebp + 0x2968]
push esi
push str.Sort_End__d
push ecx
mov dword [ebp + 0x2964], esi
call fcn.00427200
push eax
call fcn.00426f60
add ebx, 0xfffffff0
add esp, 0x10
mov dword [esp + 0x44], edi
lea edx, [ebx + 0xc]
or eax, edi
lock xadd dword [edx], eax
dec eax
test eax, eax
jg 0x4384fe
mov ecx, dword [ebx]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push ebx
call eax
jmp 0x4384fe
xor edi, edi
cmp dword [esp + 0x30], edi
mov dword [esp + 0x24], edi
jle 0x4384a9
movzx eax, byte [esp + 0x4c]
lea eax, [eax + eax*4]
add eax, eax
add eax, eax
add eax, eax
mov dword [esp + 0x28], eax
imul eax, eax, 0x2c
lea ebx, [eax + ebp + 0x14a6]
jmp 0x438304
mov edi, dword [esp + 0x24]
lea eax, [edi + 1]
push eax
push str.Server
lea ecx, [esp + 0x1c]
push str._s_d
push ecx
mov dword [esp + 0x28], eax
call fcn.00401990
mov edx, dword [str.serverConfig.dat]
add esp, 0xc
mov ecx, esp
mov dword [esp + 0x38], esp
push edx
call fcn.00401d30
lea eax, [esp + 0x30]
push eax
call fcn.004051d0
mov eax, dword [eax]
mov ecx, dword [esp + 0x1c]
add esp, 8
push eax
push 0
push ecx
push str.ServerList
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov esi, eax
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x438379
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x14]
mov edx, dword [str.serverConfig.dat]
mov eax, dword [ebp + 0x2968]
push edi
sub esi, 1
push esi
push ecx
push edx
push str._s_ServerList__s_:_ServerSrcPos__d__i__d_
push eax
call fcn.00427200
push eax
call fcn.00426f60
add esp, 0x1c
cmp esi, 0xffffffff
jne 0x438411
mov ecx, dword [ebp + 0x2968]
push str.Wrong_ServerConfig__
push ecx
call fcn.00427200
push eax
call fcn.00426f60
add esp, 0xc
push str.Wrong_Server
lea ecx, [esp + 0x24]
mov byte [ebx - 2], 0xff
mov byte [ebx - 1], 0
call fcn.00401d30
push eax
lea ecx, [ebx + 0x26]
mov byte [esp + 0x48], 2
call fcn.00402cc0
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
mov byte [esp + 0x44], 1
lea edx, [eax + 0xc]
or ecx, esi
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x438490
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x438490
mov ecx, dword [esp + 0x28]
add ecx, esi
imul ecx, ecx, 0x2c
mov dl, byte [ecx + ebp + 4]
lea esi, [ecx + ebp]
lea ecx, [esi + 0x2c]
mov byte [ebx - 2], dl
mov al, byte [esi + 5]
push ecx
lea ecx, [ebx + 0x26]
mov byte [ebx - 1], al
call fcn.00402cc0
lea eax, [esi + 6]
mov esi, eax
mov ecx, 8
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
push eax
push ebx
movsb byte es:[edi], byte [esi]
mov edx, dword [ebp + 0x2968]
push str.Sort__s_WorldInfo__s
push edx
call fcn.00427200
push eax
call fcn.00426f60
movzx eax, byte [ebx - 2]
add esp, 0x14
cmp dword [esp + 0x1c], eax
jne 0x438490
mov eax, dword [esp + 0x24]
mov ecx, dword [ebp + 0x2968]
push eax
push str.LastWorldCode__d
push ecx
mov dword [ebp + 0x2964], eax
call fcn.00427200
push eax
call fcn.00426f60
add esp, 0x10
mov eax, dword [esp + 0x18]
add ebx, 0x2c
cmp eax, dword [esp + 0x30]
mov dword [esp + 0x24], eax
jl 0x438300
mov ebx, dword [esp + 0x14]
movzx eax, byte [esp + 0x4c]
mov dword [ebp + eax*4 + 0x2948], 1
mov edx, dword [ebp + 0x2964]
mov eax, dword [ebp + 0x2968]
push edx
push str.Sort_End__d
push eax
call fcn.00427200
push eax
call fcn.00426f60
add ebx, 0xfffffff0
add esp, 0x10
mov dword [esp + 0x44], 0xffffffff
lea ecx, [ebx + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4384fe
mov ecx, dword [ebx]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push ebx
call edx
mov ecx, dword [esp + 0x3c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret 4