Function at 0x43ed40
Capabilities:
Read .ini file

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x48c864
push eax
mov dword fs:[0], esp
sub esp, 0x1c4
push ebx
push ebp
push esi
mov esi, ecx
push edi
cmp dword [esi + 0x43a4], 3
je 0x43f684
mov edi, dword [esp + 0x1e8]
cmp di, 0xffff
jne 0x43edc1
push 0x49ba20
lea ecx, [esp + 0x30]
call sub.MFC42.DLL_CString::CString_2
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x1dc], 0
mov ecx, dword [eax - 8]
push ecx
push eax
push 0x11
mov ecx, esi
call fcn.0043fc10
lea ecx, [esp + 0x2c]
mov dword [esp + 0x1dc], 0xffffffff
call fcn.00489b20
xor eax, eax
jmp 0x43f989
cmp di, 0xfffe
jne 0x43edde
push 0
push 0
push 0xa1
mov ecx, esi
call fcn.0043fc10
xor eax, eax
jmp 0x43f989
mov ecx, esi
call fcn.0040b700
mov dword [esp + 0x3c], eax
push str.Config_rmServer.ini
lea eax, [esp + 0x14]
push 0
push eax
call dword [sym.imp.Staff2.dll_class_CString___cdecl_STAFFGetInstancePathAndFilename_struct_HINSTANCE_____char_const__]
add esp, 0xc
mov ebx, 1
lea ecx, [esp + 0x14]
mov dword [esp + 0x1dc], ebx
call sub.MFC42.DLL_CString::CString
movsx eax, di
push eax
lea ecx, [esp + 0x18]
push 0x49b020
push ecx
mov byte [esp + 0x1e8], 2
mov dword [esp + 0x38], eax
call sub.MFC42.DLL_CString::Format
mov eax, dword [esp + 0x1f8]
add esp, 0xc
cmp eax, ebx
jne 0x43f1c7
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
push edx
lea eax, [esp + 0xc0]
push 0x64
push eax
push str.NoLevel
push ecx
push str.MapLevel
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov byte [esp + 0x11f], 0
mov edi, str.NoLevel
lea eax, [esp + 0xbc]
mov dl, byte [eax]
mov bl, byte [edi]
mov cl, dl
cmp dl, bl
jne 0x43eea4
test cl, cl
je 0x43eea0
mov dl, byte [eax + 1]
mov bl, byte [edi + 1]
mov cl, dl
cmp dl, bl
jne 0x43eea4
add eax, 2
add edi, 2
test cl, cl
jne 0x43ee7c
xor eax, eax
jmp 0x43eea9
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x43f029
lea eax, [esp + 0xbc]
lea ecx, [esp + 0x18]
push eax
call sub.MFC42.DLL_CString::CString_2
lea ecx, [esp + 0x20]
push 0x49b640
push ecx
lea ecx, [esp + 0x20]
mov byte [esp + 0x1e4], 3
call sub.MFC42.DLL_CString::SpanExcluding
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
mov bl, 4
mov eax, dword [edx - 8]
mov edx, dword [ecx - 8]
sub eax, edx
lea edx, [esp + 0x28]
push eax
push edx
lea ecx, [esp + 0x20]
mov byte [esp + 0x1e4], bl
call sub.MFC42.DLL_CString::Right
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1e0], 5
call fcn.00489c52
lea ecx, [esp + 0x28]
mov byte [esp + 0x1dc], bl
call fcn.00489b20
mov eax, dword [esp + 0x20]
mov ebp, dword [sym.imp.MSVCRT.dll_atol]
push eax
call ebp
add esp, 4
lea ecx, [esp + 0x28]
mov edi, eax
push str._t_
push ecx
lea ecx, [esp + 0x20]
call sub.MFC42.DLL_CString::SpanIncluding
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x1e0], 6
call fcn.00489c52
lea ecx, [esp + 0x28]
mov byte [esp + 0x1dc], bl
call fcn.00489b20
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
mov eax, dword [edx - 8]
mov edx, dword [ecx - 8]
sub eax, edx
lea edx, [esp + 0x28]
push eax
push edx
lea ecx, [esp + 0x20]
call sub.MFC42.DLL_CString::Right
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1e0], 7
call fcn.00489c52
lea ecx, [esp + 0x28]
mov byte [esp + 0x1dc], bl
call fcn.00489b20
mov eax, dword [esp + 0x18]
push eax
call ebp
add esp, 4
lea ecx, [esp + 0x40]
mov ebp, eax
mov dword [esp + 0x40], edi
push 8
push ecx
mov dword [esp + 0x4c], ebp
push 0x64
mov ecx, esi
call fcn.0043fc10
cmp edi, ebp
ja 0x43f007
mov eax, dword [esi + 0x37f8]
cmp eax, edi
jb 0x43efe5
cmp eax, ebp
jbe 0x43f007
lea ecx, [esp + 0x20]
mov byte [esp + 0x1dc], 3
call fcn.00489b20
mov byte [esp + 0x1dc], 2
lea ecx, [esp + 0x18]
jmp 0x43f65a
lea ecx, [esp + 0x20]
mov byte [esp + 0x1dc], 3
call fcn.00489b20
lea ecx, [esp + 0x18]
mov byte [esp + 0x1dc], 2
call fcn.00489b20
mov edi, dword [esp + 0x1e8]
call dword [sym.imp.rm3944.dll_NewMapFix2]
nop
push 1
push edi
push edx
mov ecx, esi
call fcn.00425800
test eax, eax
je 0x43f65f
cmp di, 0x29
jne 0x43f1c7
mov eax, dword [esi + 0x4168]
test eax, eax
jne 0x43f1c7
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x120]
push eax
push 0x64
push ecx
push str.NoItem
push str.ItemForEventMap1
push str.GameSetting
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov byte [esp + 0x183], 0
mov edi, str.NoItem
lea eax, [esp + 0x120]
mov dl, byte [eax]
mov bl, byte [edi]
mov cl, dl
cmp dl, bl
jne 0x43f0c2
test cl, cl
je 0x43f0be
mov dl, byte [eax + 1]
mov bl, byte [edi + 1]
mov cl, dl
cmp dl, bl
jne 0x43f0c2
add eax, 2
add edi, 2
test cl, cl
jne 0x43f09a
xor eax, eax
jmp 0x43f0c7
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x43f1c7
mov ecx, 0x14
xor eax, eax
lea edi, [esp + 0x184]
mov dword [esp + 0x20], eax
rep stosd dword es:[edi], eax
lea edi, [esp + 0x120]
lea ebp, [esp + 0x186]
push 0x2e
push edi
call dword [sym.imp.MSVCRT.dll_strchr]
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x43f15e
lea eax, [esp + 0x18]
lea ecx, [esp + 0x34]
push eax
lea edx, [esp + 0x2c]
push ecx
lea eax, [esp + 0x48]
push edx
push eax
push str._d:_d__d__d
push edi
call dword [sym.imp.MSVCRT.dll_sscanf]
mov eax, dword [esp + 0x40]
add esp, 0x18
test eax, eax
je 0x43f14a
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x43f14a
cmp eax, 6
je 0x43f14a
mov dx, word [esp + 0x34]
mov byte [ebp - 2], al
mov word [ebp], dx
mov dword [ebp + 2], ecx
mov eax, dword [esp + 0x20]
add ebp, 0x10
inc eax
lea edi, [ebx + 1]
cmp eax, 5
mov dword [esp + 0x20], eax
jl 0x43f0f1
mov eax, dword [esp + 0x20]
xor ebx, ebx
test eax, eax
jle 0x43f1c7
lea edi, [esp + 0x184]
mov al, byte [edi]
test al, al
je 0x43f1bb
mov cx, word [edi + 2]
push 0
push 0
push 0
push 0
push 0
push 0
push ecx
lea edx, [esp + 0x64]
push eax
push edx
mov ecx, esi
call fcn.00431940
mov ecx, dword [eax]
mov edx, dword [eax + 4]
test ecx, ecx
mov dword [esp + 0x54], edx
je 0x43f210
mov ecx, edx
mov edx, dword [eax]
push ecx
push edx
mov ecx, esi
call fcn.00431880
test eax, eax
je 0x43f210
mov eax, dword [eax + 4]
mov ecx, dword [edi + 4]
cmp eax, ecx
jb 0x43f210
mov eax, dword [esp + 0x20]
inc ebx
add edi, 0x10
cmp ebx, eax
jl 0x43f16f
cmp dword [esp + 0x1f0], 1
jne 0x43f30e
mov eax, dword [esp + 0x40]
xor ebx, ebx
xor edi, edi
lea ebp, [esi + 0x3f28]
mov cx, word [ebp]
test cx, cx
jle 0x43f205
movsx ecx, cx
push ecx
mov ecx, dword [esi + 0x44fc]
call fcn.00485e20
test eax, eax
je 0x43f205
cmp byte [eax + 0x30], 0x30
je 0x43f21e
inc edi
add ebp, 2
cmp edi, 0x14
jl 0x43f1e3
jmp 0x43f226
push 0
push 0
push 0x138
jmp 0x43f2db
mov bx, word [esi + edi*2 + 0x3f28]
test eax, eax
je 0x43f65f
test bx, bx
je 0x43f65f
cmp byte [eax + 0x30], 0x30
jne 0x43f2e2
push eax
mov ecx, esi
call fcn.00439710
test eax, eax
je 0x43f2e2
cmp word [esp + 0x1e8], 0x44
jne 0x43f267
push 0
push 0
push 0x94
jmp 0x43f2db
mov ebx, dword [esp + 0x2c]
mov ecx, dword [esi + 0x4504]
push ebx
call fcn.00464990
mov edi, eax
test edi, edi
jle 0x43f2a1
mov ecx, esi
call fcn.0040b700
mov eax, dword [eax + 0x18]
test eax, eax
je 0x43f2d5
mov edx, dword [esi + 0x42c8]
test edx, edx
jle 0x43f2d5
push edi
push edx
mov ecx, eax
call dword [sym.imp.rmDB.dll_public:_int___thiscall_CArmy::IsAgitOwner_int__int_]
jmp 0x43f2d1
mov ecx, dword [esi + 0x4504]
call fcn.00464a50
cmp eax, ebx
jne 0x43f30e
mov ecx, esi
call fcn.0040b700
mov eax, dword [eax + 0x18]
test eax, eax
je 0x43f2d5
mov edx, dword [esi + 0x42c8]
test edx, edx
jle 0x43f2d5
push edx
mov ecx, eax
call dword [sym.imp.rmDB.dll_public:_int___thiscall_CArmy::IsArmyBaseOwner_int_]
test eax, eax
jne 0x43f30e
push 0
push 0
push 0x23
mov ecx, esi
call fcn.0043fc10
lea ecx, [esp + 0x14]
mov byte [esp + 0x1dc], 1
call fcn.00489b20
lea ecx, [esp + 0x10]
mov dword [esp + 0x1dc], 0xffffffff
call fcn.00489b20
xor eax, eax
jmp 0x43f989
mov eax, dword [esi + 0x21b0]
test eax, eax
jle 0x43f356
mov ebp, dword [esp + 0x1e8]
cmp bp, 0x4a
jne 0x43f34f
mov ecx, dword [esi + 0x4504]
lea edx, [esi + 0x37d8]
push 0
push edx
push eax
call fcn.00460a10
mov ebx, 1
cmp eax, ebx
jne 0x43f362
mov dword [esi + 0x21b0], 0
jmp 0x43f362
mov ebx, 1
jmp 0x43f362
mov ebp, dword [esp + 0x1e8]
mov ebx, 1
cmp dword [esi + 0x43a4], ebx
jne 0x43f3da
mov ecx, dword [esi + 0x4504]
mov edi, dword [esp + 0x2c]
cmp dword [ecx + 0x32c4], edi
jne 0x43f3de
mov edi, dword [esp + 0x1e4]
push edi
call fcn.00471eb0
push 0
push edi
mov ecx, esi
mov byte [esi + 0x43b0], 2
mov dword [esi + 0x4330], 0
mov dword [esi + 0x445c], 0x7d0
call fcn.0043d2f0
lea ecx, [esp + 0x14]
mov byte [esp + 0x1dc], 1
call fcn.00489b20
lea ecx, [esp + 0x10]
mov dword [esp + 0x1dc], 0xffffffff
call fcn.00489b20
mov eax, ebx
jmp 0x43f989
mov edi, dword [esp + 0x2c]
lea ecx, [esp + 0x24]
call sub.MFC42.DLL_CString::CString
mov edx, dword [esi + 0x4504]
mov byte [esp + 0x1dc], 8
mov eax, dword [edx + 0x32c4]
cmp eax, 0x84
jl 0x43f43e
cmp eax, 0x88
jg 0x43f43e
cmp bp, 0x84
jl 0x43f417
cmp bp, 0x88
jle 0x43f43e
lea eax, [esi + 0x37d8]
push edi
push eax
mov ecx, esi
call fcn.00422430
push eax
lea ecx, [esp + 0x2c]
push str._u__u
push ecx
call sub.MFC42.DLL_CString::Format
add esp, 0x10
jmp 0x43f560
mov ecx, dword [esi + 0x4478]
test ecx, ecx
jl 0x43f48d
cmp eax, 0x84
jl 0x43f456
cmp eax, 0x88
jle 0x43f48d
cmp bp, 0x84
jl 0x43f48d
cmp bp, 0x88
jg 0x43f48d
test ecx, ecx
jne 0x43f46e
mov dword [esi + 0x4478], ebx
mov edx, dword [esi + 0x4478]
push edi
push edx
lea eax, [esp + 0x2c]
push str._u__u
push eax
call sub.MFC42.DLL_CString::Format
add esp, 0x10
jmp 0x43f560
cmp eax, 0xb4
jl 0x43f4d0
cmp eax, 0xbc
jg 0x43f4d0
cmp bp, 0xb4
jl 0x43f4a9
cmp bp, 0xbc
jle 0x43f4d0
lea ecx, [esi + 0x37d8]
push edi
push ecx
mov ecx, esi
call fcn.00422430
push eax
lea edx, [esp + 0x2c]
push str._u__u
push edx
call sub.MFC42.DLL_CString::Format
add esp, 0x10
jmp 0x43f560
test ecx, ecx
jl 0x43f552
cmp eax, 0xb4
jl 0x43f4e2
cmp eax, 0xbc
jle 0x43f552
cmp bp, 0xb4
jl 0x43f552
cmp bp, 0xbc
jg 0x43f552
cmp dword [edx + 0x369c], ebx
jne 0x43f505
push edi
mov dword [esi + 0x4478], ebx
push ebx
jmp 0x43f476
push 0
push 0
push 0x189
mov ecx, esi
call fcn.0043fc10
lea ecx, [esp + 0x24]
mov byte [esp + 0x1dc], 2
call fcn.00489b20
lea ecx, [esp + 0x14]
mov byte [esp + 0x1dc], 1
call fcn.00489b20
lea ecx, [esp + 0x10]
mov dword [esp + 0x1dc], 0xffffffff
call fcn.00489b20
xor eax, eax
jmp 0x43f989
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x28]
call fcn.00489c52
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
push edx
lea eax, [esp + 0x5c]
push 0x64
push eax
push str.NoAddress
push ecx
push str.MapServer
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov byte [esp + 0xbb], 0
mov edi, str.NoAddress
lea eax, [esp + 0x58]
mov dl, byte [eax]
mov bl, byte [edi]
mov cl, dl
cmp dl, bl
jne 0x43f5ba
test cl, cl
je 0x43f5b6
mov dl, byte [eax + 1]
mov bl, byte [edi + 1]
mov cl, dl
cmp dl, bl
jne 0x43f5ba
add eax, 2
add edi, 2
test cl, cl
jne 0x43f592
xor eax, eax
jmp 0x43f5bf
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x43f600
lea ecx, [esp + 0x24]
mov byte [esp + 0x1dc], 2
call fcn.00489b20
lea ecx, [esp + 0x14]
mov byte [esp + 0x1dc], 1
call fcn.00489b20
lea ecx, [esp + 0x10]
mov dword [esp + 0x1dc], 0xffffffff
call fcn.00489b20
xor eax, eax
jmp 0x43f989
lea eax, [esp + 0x58]
lea ecx, [esp + 0x1c]
push eax
call sub.MFC42.DLL_CString::CString_2
push 0x20
lea ecx, [esp + 0x20]
mov byte [esp + 0x1e0], 9
call sub.MFC42.DLL_CString::Remove
push 9
lea ecx, [esp + 0x20]
call sub.MFC42.DLL_CString::Remove
push 0x2c
lea ecx, [esp + 0x20]
call sub.MFC42.DLL_CString::Find_1
mov edi, eax
test edi, edi
jge 0x43f68b
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1dc], 8
call fcn.00489b20
mov byte [esp + 0x1dc], 2
lea ecx, [esp + 0x24]
call fcn.00489b20
lea ecx, [esp + 0x14]
mov byte [esp + 0x1dc], 1
call fcn.00489b20
lea ecx, [esp + 0x10]
mov dword [esp + 0x1dc], 0xffffffff
call fcn.00489b20
xor eax, eax
jmp 0x43f989
lea ecx, [edi + 1]
lea edx, [esp + 0x38]
push ecx
push edx
lea ecx, [esp + 0x24]
call sub.MFC42.DLL_CString::Left
mov eax, dword [esp + 0x1c]
lea ecx, [esp + 0x48]
mov bl, 0xa
mov eax, dword [eax - 8]
mov byte [esp + 0x1dc], bl
sub eax, edi
dec eax
push eax
push ecx
lea ecx, [esp + 0x24]
call sub.MFC42.DLL_CString::Right
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x1e0], 0xb
call fcn.00489c52
lea ecx, [esp + 0x48]
mov byte [esp + 0x1dc], bl
call fcn.00489b20
push 0x49bbbc
lea ecx, [esp + 0x20]
call fcn.00489b7a
lea edx, [esp + 0x38]
lea ecx, [esp + 0x1c]
push edx
call sub.MFC42.DLL_CString::operator_1
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0x30]
push ecx
push ebp
lea eax, [esp + 0x60]
push 0x64
push edx
mov ecx, esi
mov dword [esp + 0x40], eax
call fcn.004224a0
mov cx, word [esi + 0x3800]
mov dx, word [esi + 0x3802]
mov dword [esp + 0x34], eax
mov al, byte [esi + 0x3804]
mov word [esi + 0x4470], cx
mov ecx, dword [esi + 0x4504]
mov byte [esi + 0x4474], al
mov word [esi + 0x4472], dx
mov dword [esi + 0x43a4], 3
mov eax, dword [ecx + 0x32c4]
cmp eax, 0x84
jl 0x43f770
cmp eax, 0x88
jg 0x43f770
mov edi, 1
jmp 0x43f772
xor edi, edi
cmp bp, 0x84
jl 0x43f787
cmp bp, 0x88
jg 0x43f787
mov edx, 1
jmp 0x43f789
xor edx, edx
cmp edi, edx
mov edx, dword [esp + 0x1e4]
jne 0x43f7eb
cmp eax, 0xb4
jl 0x43f7a9
cmp eax, 0xbc
jg 0x43f7a9
mov edi, 1
jmp 0x43f7ab
xor edi, edi
cmp bp, 0xb4
jl 0x43f7c0
cmp bp, 0xbc
jg 0x43f7c0
mov eax, 1
jmp 0x43f7c2
xor eax, eax
cmp edi, eax
jne 0x43f7eb
mov al, byte [edx + 4]
mov byte [esi + 0x3804], al
mov ax, word [edx]
mov word [esi + 0x3800], ax
mov ax, word [edx + 2]
mov word [esi + 0x3802], ax
mov word [esi + 0x37fe], bp
mov edi, dword [edx]
mov ebx, dword [esi + 0x21b0]
lea eax, [esi + 0x43a8]
test ebx, ebx
mov dword [eax], edi
mov dx, word [edx + 4]
mov word [esi + 0x43ae], bp
mov word [eax + 4], dx
jle 0x43f8b2
mov edx, dword [ecx + 0x32c4]
cmp edx, 0x84
jl 0x43f82f
cmp edx, 0x88
jg 0x43f82f
mov edi, 1
jmp 0x43f831
xor edi, edi
cmp bp, 0x84
jl 0x43f846
cmp bp, 0x88
jg 0x43f846
mov eax, 1
jmp 0x43f848
xor eax, eax
cmp edi, eax
jne 0x43f894
cmp edx, 0xb4
jl 0x43f863
cmp edx, 0xbc
jg 0x43f863
mov edx, 1
jmp 0x43f865
xor edx, edx
cmp bp, 0xb4
jl 0x43f87a
cmp bp, 0xbc
jg 0x43f87a
mov eax, 1
jmp 0x43f87c
xor eax, eax
cmp edx, eax
jne 0x43f894
mov eax, dword [esp + 0x2c]
lea edx, [esi + 0x37d8]
push eax
push edx
push ebx
call fcn.00461b20
jmp 0x43f8b2
lea eax, [esi + 0x37d8]
push 0
push eax
push ebx
call fcn.00460a10
cmp eax, 1
jne 0x43f8b2
mov dword [esi + 0x21b0], 0
cmp dword [esi + 0x454c], 1
jne 0x43f8dd
mov ecx, dword [esp + 0x3c]
lea edx, [esi + 0x37d8]
push edx
mov edi, dword [ecx + 0x18]
mov ecx, dword [esi + 0x4504]
call fcn.00464820
push eax
mov ecx, edi
call dword [sym.imp.rmDB.dll_public:_int___thiscall_CArmy::CancelCreateArmy_unsigned_char__char__]
mov ecx, dword [esp + 0x3c]
lea eax, [esi + 0x37d8]
push eax
mov dword [esi + 0x4560], 0
mov byte [esi + 0x4564], 0
call dword [sym.imp.rmDB.dll_public:_int___thiscall_CGameDBServer::SetUser_struct_USERDB__]
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
mov edx, dword [esi]
push 1
push eax
push ecx
push 0xc9
mov ecx, esi
call dword [edx + 0xc]
mov eax, dword [esp + 0x30]
lea edx, [esp + 0x58]
cmp eax, edx
je 0x43f92c
push eax
call sub.MFC42.DLL_operatordelete
add esp, 4
lea ecx, [esp + 0x38]
mov byte [esp + 0x1dc], 9
call fcn.00489b20
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1dc], 8
call fcn.00489b20
lea ecx, [esp + 0x24]
mov byte [esp + 0x1dc], 2
call fcn.00489b20
lea ecx, [esp + 0x14]
mov byte [esp + 0x1dc], 1
call fcn.00489b20
lea ecx, [esp + 0x10]
mov dword [esp + 0x1dc], 0xffffffff
call fcn.00489b20
mov eax, 1
mov ecx, dword [esp + 0x1d4]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x1d0
ret 0x10