joyce8/EMBER2024-capa huggingface dataset:
Function at 0x4283c0
Capabilities:
Read .ini file

Disassembly:
push 0xffffffffffffffff
push 0x48c431
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xd8
mov eax, dword [ecx + 0x4504]
push esi
push str.ConfigSubQuest.ini
lea ecx, [esp + 0x10]
mov esi, dword [eax + 0x32c4]
push 0
push ecx
call dword [sym.imp.Staff2.dll_class_CString___cdecl_STAFFGetInstancePathAndFilename_struct_HINSTANCE_____char_const__]
add esp, 0xc
lea ecx, [esp + 8]
mov dword [esp + 0xe4], 0
call sub.MFC42.DLL_CString::CString
movsx edx, si
push edx
lea eax, [esp + 0xc]
push 0x49b020
push eax
mov byte [esp + 0xf0], 1
call sub.MFC42.DLL_CString::Format
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
add esp, 0xc
lea edx, [esp + 0x14]
push ecx
push 0x64
push edx
push str.NoMapInfo
push eax
push str.SubQuest3MapLink
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea ecx, [esp + 0x14]
push str.NoMapInfo
push ecx
mov byte [esp + 0x7f], 0
call dword [sym.imp.MSVCRT.dll__stricmp]
add esp, 8
test eax, eax
je 0x42850d
push ebx
push ebp
push edi
mov ecx, 0x19
or eax, 0xffffffff
lea edi, [esp + 0x84]
rep stosd dword es:[edi], eax
lea edx, [esp + 0x20]
lea ecx, [esp + 0x10]
push edx
call sub.MFC42.DLL_CString::CString_2
lea ecx, [esp + 0x10]
mov byte [esp + 0xf0], 2
call sub.MFC42.DLL_CString::TrimLeft
mov ebp, dword [sym.imp.MSVCRT.dll_atoi]
mov ebx, dword [sym.imp.Staff2.dll_class_CString___cdecl_STAFFGetFirstWord_class_CString___char_const___char___int_]
xor esi, esi
lea edi, [esp + 0x84]
mov eax, dword [esp + 0x10]
mov ecx, dword [eax - 8]
test ecx, ecx
je 0x4284f5
push 1
push 0
lea ecx, [esp + 0x18]
push 0x49b954
lea edx, [esp + 0x28]
push ecx
push edx
call ebx
mov eax, dword [eax]
push eax
call ebp
add esp, 0x18
lea ecx, [esp + 0x1c]
mov word [edi], ax
call fcn.00489b20
inc esi
add edi, 2
cmp esi, 0x32
jl 0x4284b8
pop edi
pop ebp
test esi, esi
pop ebx
jg 0x428539
lea ecx, [esp + 4]
mov byte [esp + 0xe4], 1
call fcn.00489b20
lea ecx, [esp + 8]
mov byte [esp + 0xe4], 0
call fcn.00489b20
lea ecx, [esp + 0xc]
mov dword [esp + 0xe4], 0xffffffff
call fcn.00489b20
xor eax, eax
jmp 0x4285c6
call dword [sym.imp.MSVCRT.dll_rand]
cdq
idiv esi
or esi, 0xffffffff
mov ax, word [esp + edx*2 + 0x78]
cmp ax, si
jne 0x428585
lea ecx, [esp + 4]
mov byte [esp + 0xe4], 1
call fcn.00489b20
lea ecx, [esp + 8]
mov byte [esp + 0xe4], 0
call fcn.00489b20
lea ecx, [esp + 0xc]
mov dword [esp + 0xe4], esi
call fcn.00489b20
xor eax, eax
jmp 0x4285c6
mov ecx, dword [esp + 0xec]
mov byte [esp + 0xe4], 1
mov word [ecx], ax
lea ecx, [esp + 4]
call fcn.00489b20
lea ecx, [esp + 8]
mov byte [esp + 0xe4], 0
call fcn.00489b20
lea ecx, [esp + 0xc]
mov dword [esp + 0xe4], esi
call fcn.00489b20
mov eax, 1
mov ecx, dword [esp + 0xdc]
pop esi
mov dword fs:[0], ecx
add esp, 0xe4
ret 4
Function at 0x4285e0
Capabilities:
Read .ini file

Disassembly:
push 0xffffffffffffffff
push 0x48c461
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xd8
push esi
xor esi, esi
push str.ConfigSubQuest.ini
lea eax, [esp + 0x10]
push esi
push eax
call dword [sym.imp.Staff2.dll_class_CString___cdecl_STAFFGetInstancePathAndFilename_struct_HINSTANCE_____char_const__]
add esp, 0xc
lea ecx, [esp + 8]
mov dword [esp + 0xe4], esi
call sub.MFC42.DLL_CString::CString
movsx ecx, word [esp + 0xec]
push ecx
lea edx, [esp + 0xc]
push 0x49b020
push edx
mov byte [esp + 0xf0], 1
call sub.MFC42.DLL_CString::Format
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
add esp, 0xc
lea ecx, [esp + 0x14]
push eax
push 0x64
push ecx
push str.NoNPCInfo
push edx
push 0x49b98c
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [esp + 0x14]
push str.NoNPCInfo
push eax
mov byte [esp + 0x7f], 0
call dword [sym.imp.MSVCRT.dll__stricmp]
add esp, 8
test eax, eax
je 0x428721
push ebx
push ebp
push edi
mov ecx, 0x19
or eax, 0xffffffff
lea edi, [esp + 0x84]
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x20]
push ecx
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::CString_2
lea ecx, [esp + 0x10]
mov byte [esp + 0xf0], 2
call sub.MFC42.DLL_CString::TrimLeft
mov ebp, dword [sym.imp.MSVCRT.dll_atoi]
mov ebx, dword [sym.imp.Staff2.dll_class_CString___cdecl_STAFFGetFirstWord_class_CString___char_const___char___int_]
lea edi, [esp + 0x84]
mov edx, dword [esp + 0x10]
mov eax, dword [edx - 8]
test eax, eax
je 0x428709
push 1
push 0
lea eax, [esp + 0x18]
push 0x49b954
lea ecx, [esp + 0x28]
push eax
push ecx
call ebx
mov eax, dword [eax]
push eax
call ebp
add esp, 0x18
lea ecx, [esp + 0x1c]
mov word [edi], ax
call fcn.00489b20
inc esi
add edi, 2
cmp esi, 0x32
jl 0x4286cc
pop edi
pop ebp
test esi, esi
pop ebx
jg 0x42874d
lea ecx, [esp + 4]
mov byte [esp + 0xe4], 1
call fcn.00489b20
lea ecx, [esp + 8]
mov byte [esp + 0xe4], 0
call fcn.00489b20
lea ecx, [esp + 0xc]
mov dword [esp + 0xe4], 0xffffffff
call fcn.00489b20
xor eax, eax
jmp 0x4287da
call dword [sym.imp.MSVCRT.dll_rand]
cdq
idiv esi
or esi, 0xffffffff
mov ax, word [esp + edx*2 + 0x78]
cmp ax, si
jne 0x428799
lea ecx, [esp + 4]
mov byte [esp + 0xe4], 1
call fcn.00489b20
lea ecx, [esp + 8]
mov byte [esp + 0xe4], 0
call fcn.00489b20
lea ecx, [esp + 0xc]
mov dword [esp + 0xe4], esi
call fcn.00489b20
xor eax, eax
jmp 0x4287da
mov edx, dword [esp + 0xf0]
lea ecx, [esp + 4]
mov byte [esp + 0xe4], 1
mov word [edx], ax
call fcn.00489b20
lea ecx, [esp + 8]
mov byte [esp + 0xe4], 0
call fcn.00489b20
lea ecx, [esp + 0xc]
mov dword [esp + 0xe4], esi
call fcn.00489b20
mov eax, 1
mov ecx, dword [esp + 0xdc]
pop esi
mov dword fs:[0], ecx
add esp, 0xe4
ret 8
Function at 0x428880
Capabilities:
Contain obfuscated stackstrings
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x78
mov edx, dword [ecx + 0x37f8]
push ebx
push esi
push edi
lea ebx, [edx + 0x32]
mov word [esp + 0xc], 0x38
cmp ebx, 1
mov word [esp + 0xe], 0x32
mov word [esp + 0x10], 0x39
mov word [esp + 0x12], 0x33
mov word [esp + 0x14], 0x34
mov word [esp + 0x16], 0x35
mov word [esp + 0x18], 0x36
mov word [esp + 0x1a], 0x3a
mov word [esp + 0x1c], 0x37
mov word [esp + 0x1e], 0x3b
mov word [esp + 0x20], 0x3c
mov word [esp + 0x22], 0x40
mov word [esp + 0x24], 0x3d
mov word [esp + 0x26], 0x3e
mov word [esp + 0x28], 0x41
mov word [esp + 0x2a], 0x3f
mov word [esp + 0x2c], 0x44
mov word [esp + 0x2e], 0x46
mov word [esp + 0x30], 0x48
mov word [esp + 0x32], 0x47
mov dword [esp + 0x34], 1
mov dword [esp + 0x38], 0xa
mov dword [esp + 0x3c], 0x14
mov dword [esp + 0x40], 0x28
mov dword [esp + 0x44], 0x50
mov dword [esp + 0x48], 0x78
mov dword [esp + 0x4c], 0xa0
mov dword [esp + 0x50], 0xc8
mov dword [esp + 0x54], 0xfa
mov dword [esp + 0x58], 0x12c
mov dword [esp + 0x5c], 0x140
mov dword [esp + 0x60], 0x168
mov dword [esp + 0x64], 0x190
mov dword [esp + 0x68], 0x1b8
mov dword [esp + 0x6c], 0x1e0
mov dword [esp + 0x70], 0x208
mov dword [esp + 0x74], 0x21c
mov dword [esp + 0x78], 0x230
mov dword [esp + 0x7c], 0x244
mov dword [esp + 0x80], 0x258
jae 0x4289cc
xor edi, edi
mov edx, edi
jmp 0x428a51
cmp edx, 0x28a
jbe 0x4289dd
mov edi, 0x13
mov edx, edi
jmp 0x428a51
or edi, 0xffffffff
or esi, 0xffffffff
push ebp
xor eax, eax
lea ecx, [esp + 0x38]
cmp edi, 0xffffffff
je 0x4289f6
cmp esi, 0xffffffff
jne 0x428a16
jmp 0x428a06
mov ebp, dword [ecx]
add ebp, 0x32
cmp ebp, edx
jb 0x428a01
mov edi, eax
cmp esi, 0xffffffff
jne 0x428a0d
cmp dword [ecx], ebx
jae 0x428a0d
lea esi, [eax - 1]
inc eax
add ecx, 4
cmp eax, 0x14
jl 0x4289ea
cmp edi, 0xffffffff
pop ebp
jne 0x428a25
mov edi, 0x13
mov edx, edi
jmp 0x428a51
cmp esi, 0xffffffff
jne 0x428a2f
mov esi, 0x13
cmp edi, esi
jle 0x428a3e
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x78
ret 4
jne 0x428a44
mov edx, edi
jmp 0x428a51
call dword [sym.imp.MSVCRT.dll_rand]
cdq
sub esi, edi
idiv esi
add edx, edi
mov ecx, dword [esp + 0x88]
mov ax, word [esp + edx*2 + 0xc]
pop edi
pop esi
mov word [ecx], ax
mov eax, 1
pop ebx
add esp, 0x78
ret 4
Function at 0x428a70
Capabilities:
Read .ini file

Disassembly:
push 0xffffffffffffffff
push 0x48c491
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xd8
push esi
xor esi, esi
push str.ConfigSubQuest.ini
lea eax, [esp + 0x10]
push esi
push eax
call dword [sym.imp.Staff2.dll_class_CString___cdecl_STAFFGetInstancePathAndFilename_struct_HINSTANCE_____char_const__]
add esp, 0xc
lea ecx, [esp + 8]
mov dword [esp + 0xe4], esi
call sub.MFC42.DLL_CString::CString
movsx ecx, word [esp + 0xec]
push ecx
lea edx, [esp + 0xc]
push 0x49b020
push edx
mov byte [esp + 0xf0], 1
call sub.MFC42.DLL_CString::Format
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
add esp, 0xc
lea ecx, [esp + 0x14]
push eax
push 0x64
push ecx
push str.NoMonsterMapInfo
push edx
push str.MonsterMap
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [esp + 0x14]
push str.NoMonsterMapInfo
push eax
mov byte [esp + 0x7f], 0
call dword [sym.imp.MSVCRT.dll__stricmp]
add esp, 8
test eax, eax
je 0x428bb1
push ebx
push ebp
push edi
mov ecx, 0x19
or eax, 0xffffffff
lea edi, [esp + 0x84]
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x20]
push ecx
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::CString_2
lea ecx, [esp + 0x10]
mov byte [esp + 0xf0], 2
call sub.MFC42.DLL_CString::TrimLeft
mov ebp, dword [sym.imp.MSVCRT.dll_atoi]
mov ebx, dword [sym.imp.Staff2.dll_class_CString___cdecl_STAFFGetFirstWord_class_CString___char_const___char___int_]
lea edi, [esp + 0x84]
mov edx, dword [esp + 0x10]
mov eax, dword [edx - 8]
test eax, eax
je 0x428b99
push 1
push 0
lea eax, [esp + 0x18]
push 0x49b954
lea ecx, [esp + 0x28]
push eax
push ecx
call ebx
mov eax, dword [eax]
push eax
call ebp
add esp, 0x18
lea ecx, [esp + 0x1c]
mov word [edi], ax
call fcn.00489b20
inc esi
add edi, 2
cmp esi, 0x32
jl 0x428b5c
pop edi
pop ebp
test esi, esi
pop ebx
jg 0x428bdd
lea ecx, [esp + 4]
mov byte [esp + 0xe4], 1
call fcn.00489b20
lea ecx, [esp + 8]
mov byte [esp + 0xe4], 0
call fcn.00489b20
lea ecx, [esp + 0xc]
mov dword [esp + 0xe4], 0xffffffff
call fcn.00489b20
xor eax, eax
jmp 0x428c6a
call dword [sym.imp.MSVCRT.dll_rand]
cdq
idiv esi
or esi, 0xffffffff
mov ax, word [esp + edx*2 + 0x78]
cmp ax, si
jne 0x428c29
lea ecx, [esp + 4]
mov byte [esp + 0xe4], 1
call fcn.00489b20
lea ecx, [esp + 8]
mov byte [esp + 0xe4], 0
call fcn.00489b20
lea ecx, [esp + 0xc]
mov dword [esp + 0xe4], esi
call fcn.00489b20
xor eax, eax
jmp 0x428c6a
mov edx, dword [esp + 0xf0]
lea ecx, [esp + 4]
mov byte [esp + 0xe4], 1
mov word [edx], ax
call fcn.00489b20
lea ecx, [esp + 8]
mov byte [esp + 0xe4], 0
call fcn.00489b20
lea ecx, [esp + 0xc]
mov dword [esp + 0xe4], esi
call fcn.00489b20
mov eax, 1
mov ecx, dword [esp + 0xdc]
pop esi
mov dword fs:[0], ecx
add esp, 0xe4
ret 8
Function at 0x43f9b0
Capabilities:
Access peb ldr_data
Get ntdll base address

Disassembly:
push 0xffffffffffffffff
push 0x48c888
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xc
push ebx
push ebp
push esi
push edi
mov edi, ecx
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CString::CString
movsx eax, word [esp + 0x2c]
push eax
lea ecx, [esp + 0x1c]
push 0x49b020
push ecx
mov dword [esp + 0x30], 0
call sub.MFC42.DLL_CString::Format
add esp, 0xc
lea ecx, [esp + 0x10]
push str.0.0.0.0_0
call sub.MFC42.DLL_CString::CString_2
push 0x20
lea ecx, [esp + 0x14]
mov byte [esp + 0x28], 1
call sub.MFC42.DLL_CString::Remove
push 9
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::Remove
push 0x3a
push 0x2c
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CString::Replace
mov esi, dword [edi + 0x4504]
lea ecx, [esp + 0x14]
add esi, 0x323c
mov ebp, dword [esi + 8]
mov ebx, dword [esi + 0xc]
call sub.MFC42.DLL_CString::CString
mov esi, dword [esi + 0x10]
mov edx, dword [esp + 0x10]
push esi
push ebx
push ebp
push edx
lea eax, [esp + 0x24]
push str._s:_u:_u:_s
push eax
mov byte [esp + 0x3c], 2
call sub.MFC42.DLL_CString::Format
mov eax, dword [esp + 0x2c]
mov edx, dword [edi]
add esp, 0x18
mov ecx, dword [eax - 8]
push 1
push eax
push ecx
push 0x12d
mov ecx, edi
call dword [edx + 0xc]
lea ecx, [esp + 0x14]
mov byte [esp + 0x24], 1
call fcn.00489b20
lea ecx, [esp + 0x10]
mov byte [esp + 0x24], 0
call fcn.00489b20
lea ecx, [esp + 0x18]
mov dword [esp + 0x24], 0xffffffff
call fcn.00489b20
mov ecx, dword [esp + 0x1c]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x18
ret 4
Function at 0x43fc10
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x48fda0
push 0x48a1f4
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x40c
push ebx
push esi
push edi
mov dword [ebp - 0x18], esp
mov ebx, ecx
mov esi, dword [ebp + 8]
mov eax, esi
and eax, 0xffff
add eax, 0xffffff4c
cmp eax, 0x10
ja case.0x43fc53.185
jmp dword [eax*4 + 0x43fd70]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
xor edx, edx
mov ecx, 0x3e8
div ecx
cmp edx, 0x1f4
sbb edx, edx
add edx, 0xc5
push edx
jmp 0x43fcf4
push 0xba
jmp 0x43fcf4
push 0xbb
jmp 0x43fcf4
push 0xbc
jmp 0x43fcf4
push 0xbd
jmp 0x43fcf4
push 0xbe
jmp 0x43fcf4
push 0xbf
jmp 0x43fcf4
push 0xc0
jmp 0x43fcf4
push 0xc2
jmp 0x43fcf4
mov dword [ebx + 0x43b4], 1
call dword [sym.imp.KERNEL32.dll_GetTickCount]
xor edx, edx
mov ecx, 0x3e8
div ecx
cmp edx, 0x1f4
sbb edx, edx
add edx, 0xc5
push edx
mov ecx, ebx
call fcn.0041b540
push 0xc3
jmp 0x43fcf4
push 0xc8
jmp 0x43fcf4
push 0xc1
mov ecx, ebx
call fcn.0041b540
mov eax, dword [ebp + 0x10]
lea ecx, [eax + 2]
cmp ecx, 0x400
ja 0x43fd5b
mov word [ebp - 0x418], si
mov ecx, eax
mov esi, dword [ebp + 0xc]
lea edi, [ebp - 0x416]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dword [ebp - 4], 0
mov edx, dword [ebx]
push 1
lea ecx, [ebp - 0x418]
push ecx
add eax, 2
push eax
push 0x123
mov ecx, ebx
call dword [edx + 0xc]
jmp 0x43fd54
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
Function at 0x440520
Capabilities:
Get number of processors

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x48c918
push eax
mov eax, dword [esp + 0x14]
mov dword fs:[0], esp
sub esp, 0x14
cmp eax, 0x12
push ebx
push ebp
mov ebx, ecx
jne 0x44065e
mov eax, dword [esp + 0x2c]
cmp byte [eax + 0x11], 1
jne 0x44065e
mov ecx, dword [ebx + 0x21b0]
test ecx, ecx
jg 0x44065e
push eax
lea ecx, [esp + 0x34]
call sub.MFC42.DLL_CString::CString_2
mov ebp, dword [esp + 0x30]
mov dword [esp + 0x24], 0
cmp dword [ebp - 8], 0x10
jle 0x4405a5
lea ecx, [esp + 0x30]
mov dword [esp + 0x24], 0xffffffff
call fcn.00489b20
pop ebp
pop ebx
mov ecx, dword [esp + 0x14]
mov dword fs:[0], ecx
add esp, 0x20
ret 8
mov al, byte [ebx + 0x37fc]
push esi
push edi
mov byte [esp + 0x10], al
lea edi, [ebx + 0x37d8]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x11]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebx + 0x3f74]
cmp ecx, 0x1312d00
jbe 0x440607
mov eax, 0x51eb851f
mul dword [ebx + 0x42d8]
mov esi, edx
mov eax, ecx
shr esi, 5
xor edx, edx
mov ecx, 0x64
div esi
cmp al, cl
jae 0x44062f
jmp 0x440621
lea eax, [ecx + ecx*4]
xor edx, edx
mov ecx, 0x64
lea eax, [eax + eax*4]
shl eax, 2
div dword [ebx + 0x42d8]
cmp al, cl
jae 0x44062f
movzx ax, al
cmp ax, cx
mov word [esp + 0x22], ax
jle 0x440634
mov word [esp + 0x22], cx
lea ecx, [esp + 0x10]
push ecx
mov ecx, dword [ebx + 0x4504]
push ebp
call fcn.00460980
lea ecx, [esp + 0x38]
mov dword [ebx + 0x21b0], eax
mov dword [esp + 0x2c], 0xffffffff
call fcn.00489b20
pop edi
pop esi
mov ecx, dword [esp + 0x1c]
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x20
ret 8
Function at 0x442f60
Capabilities:
Read .ini file

Disassembly:
push 0xffffffffffffffff
push 0x48cdfb
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x404
push ebx
push esi
push edi
push str.Config_rmServer.ini
lea eax, [esp + 0x10]
push 0
mov edi, ecx
push eax
call dword [sym.imp.Staff2.dll_class_CString___cdecl_STAFFGetInstancePathAndFilename_struct_HINSTANCE_____char_const__]
add esp, 0xc
mov ecx, dword [esp + 0xc]
lea edx, [esp + 0x10]
push ecx
push 0x400
push edx
push str.NoValue
push str.ServerIndex
push str.IPServer
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov byte [esp + 0x40f], 0
mov esi, str.NoValue
lea eax, [esp + 0x10]
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x442ff2
test cl, cl
je 0x442fee
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x442ff2
add eax, 2
add esi, 2
test cl, cl
jne 0x442fca
xor eax, eax
jmp 0x442ff7
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x443013
lea ecx, [esp + 0xc]
mov dword [esp + 0x418], 0xffffffff
call fcn.00489b20
xor eax, eax
jmp 0x443040
lea eax, [esp + 0x10]
push eax
call dword [sym.imp.MSVCRT.dll_atoi]
add esp, 4
lea ecx, [esp + 0xc]
mov dword [edi + 0x3688], eax
mov dword [esp + 0x418], 0xffffffff
call fcn.00489b20
mov eax, 1
mov ecx, dword [esp + 0x410]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
add esp, 0x410
ret
Function at 0x444280
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x48ced9
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x78
push ebx
mov ebx, ecx
push esi
push edi
mov eax, dword [ebx + 0x30]
lea ecx, [esp + 0x18]
mov eax, dword [eax + 0x9c]
push eax
call dword [sym.imp.Staff2.dll_public:_void___thiscall_CSWMRLock::constructor_class_CSWMRG__]
lea ecx, [esp + 0x18]
mov dword [esp + 0x8c], 0
call dword [sym.imp.Staff2.dll_public:_int___thiscall_CSWMRLock::ReadLock_void_]
mov edi, dword [esp + 0x94]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x25]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
add ebx, 0x31dc
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x24]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0xc]
push ecx
push edx
mov ecx, ebx
call fcn.00488180
test eax, eax
je 0x44436b
mov eax, dword [esp + 0xc]
or ecx, 0xffffffff
lea edx, [eax + 0x437c]
xor eax, eax
mov edi, edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x444362
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
lea esi, [esp + 0x55]
not ecx
sub edi, ecx
mov eax, esi
mov edx, ecx
mov esi, edi
mov edi, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea edx, [esp + 0x54]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x14]
push ecx
push edx
mov ecx, ebx
call fcn.00488180
test eax, eax
je 0x444362
mov ecx, dword [esp + 0x14]
call fcn.0040f010
mov ecx, dword [esp + 0xc]
call fcn.0040f010
lea ecx, [esp + 0x18]
call dword [sym.imp.Staff2.dll_public:_int___thiscall_CSWMRLock::Unlock_void_]
lea ecx, [esp + 0x18]
mov dword [esp + 0x8c], 0xffffffff
call dword [sym.imp.Staff2.dll_public_virtual:_void___thiscall_CSWMRLock::destructor_void_]
mov ecx, dword [esp + 0x84]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
add esp, 0x84
ret 4
Function at 0x4443b0
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x48cef9
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x44
push esi
mov esi, ecx
lea ecx, [esp + 0xc]
mov eax, dword [esi + 0x30]
mov eax, dword [eax + 0x9c]
push eax
call dword [sym.imp.Staff2.dll_public:_void___thiscall_CSWMRLock::constructor_class_CSWMRG__]
lea ecx, [esp + 0xc]
mov dword [esp + 0x50], 0
call dword [sym.imp.Staff2.dll_public:_int___thiscall_CSWMRLock::ReadLock_void_]
lea ecx, [esp + 4]
lea edx, [esp + 0x18]
add esi, 0x31dc
push ecx
lea eax, [esp + 0xc]
push edx
push eax
mov ecx, esi
call fcn.004882b0
test eax, eax
je 0x444456
push ebx
mov ebx, dword [esp + 0x5c]
push edi
mov edi, dword [esp + 0x64]
mov ecx, dword [esp + 0xc]
push 0
push 0
cmp dword [ecx + 0x43a4], 2
jne 0x444433
call fcn.0043b7c0
jmp 0x44443a
push ebx
push edi
call fcn.0043ed40
lea ecx, [esp + 0xc]
lea edx, [esp + 0x20]
push ecx
lea eax, [esp + 0x14]
push edx
push eax
mov ecx, esi
call fcn.00488380
test eax, eax
jne 0x44441b
pop edi
pop ebx
lea ecx, [esp + 0xc]
call dword [sym.imp.Staff2.dll_public:_int___thiscall_CSWMRLock::Unlock_void_]
lea ecx, [esp + 0xc]
mov dword [esp + 0x50], 0xffffffff
call dword [sym.imp.Staff2.dll_public_virtual:_void___thiscall_CSWMRLock::destructor_void_]
mov ecx, dword [esp + 0x48]
pop esi
mov dword fs:[0], ecx
add esp, 0x50
ret 8
Function at 0x445e40
Capabilities:
Read .ini file

Disassembly:
push 0xffffffffffffffff
push 0x48cf98
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x24
push esi
push edi
push str.Config_rmServer.ini
lea eax, [esp + 0xc]
push 0
mov edi, ecx
push eax
call dword [sym.imp.Staff2.dll_class_CString___cdecl_STAFFGetInstancePathAndFilename_struct_HINSTANCE_____char_const__]
add esp, 0xc
mov ecx, dword [esp + 8]
lea edx, [esp + 0xc]
push ecx
push 0x1e
push edx
push str.NoLang
push str.Lang
push str.Info
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov byte [esp + 0x29], 0
mov esi, str.NoLang
lea eax, [esp + 0xc]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x445ec4
test cl, cl
je 0x445ec0
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x445ec4
add eax, 2
add esi, 2
test cl, cl
jne 0x445ea0
xor eax, eax
jmp 0x445ec9
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x445ef7
lea ecx, [esp + 8]
mov dword [edi + 0x3664], eax
mov dword [esp + 0x34], 0xffffffff
call fcn.00489b20
pop edi
xor eax, eax
pop esi
mov ecx, dword [esp + 0x24]
mov dword fs:[0], ecx
add esp, 0x30
ret
lea eax, [esp + 0xc]
push eax
call dword [sym.imp.MSVCRT.dll_atoi]
add esp, 4
lea ecx, [esp + 8]
mov dword [edi + 0x3664], eax
mov dword [esp + 0x34], 0xffffffff
call fcn.00489b20
mov ecx, dword [esp + 0x2c]
pop edi
mov eax, 1
pop esi
mov dword fs:[0], ecx
add esp, 0x30
ret
Function at 0x4469d0
Capabilities:
Read .ini file

Disassembly:
push 0xffffffffffffffff
push 0x48d058
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x6c
push esi
push edi
push str.Config_rmServer.ini
lea eax, [esp + 0xc]
push 0
mov edi, ecx
push eax
call dword [sym.imp.Staff2.dll_class_CString___cdecl_STAFFGetInstancePathAndFilename_struct_HINSTANCE_____char_const__]
add esp, 0xc
mov ecx, dword [esp + 8]
lea edx, [esp + 0xc]
push ecx
push 0x64
push edx
push str.NoAddress
push str.BOARD
push 0x49c238
mov dword [esp + 0x94], 0
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov byte [esp + 0x70], 0
mov esi, str.NoAddress
lea eax, [esp + 0xc]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x446a5f
test cl, cl
je 0x446a5b
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x446a5f
add eax, 2
add esi, 2
test cl, cl
jne 0x446a3b
xor eax, eax
jmp 0x446a64
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x446a8c
lea ecx, [esp + 8]
mov dword [esp + 0x7c], 0xffffffff
call fcn.00489b20
pop edi
xor eax, eax
pop esi
mov ecx, dword [esp + 0x6c]
mov dword fs:[0], ecx
add esp, 0x78
ret
lea esi, [edi + 0x3558]
lea eax, [esp + 0xc]
push eax
mov ecx, esi
call sub.MFC42.DLL_CString::operator
mov ecx, esi
call sub.MFC42.DLL_CString::TrimLeft
mov ecx, esi
call sub.MFC42.DLL_CString::TrimRight
mov ecx, dword [esi]
mov dword [esp + 0x7c], 0xffffffff
mov eax, dword [ecx - 8]
lea ecx, [esp + 8]
test eax, eax
jne 0x446ad9
call fcn.00489b20
pop edi
xor eax, eax
pop esi
mov ecx, dword [esp + 0x6c]
mov dword fs:[0], ecx
add esp, 0x78
ret
call fcn.00489b20
mov ecx, dword [esp + 0x74]
pop edi
mov eax, 1
pop esi
mov dword fs:[0], ecx
add esp, 0x78
ret