Function at 0x100088e0
Capabilities:
Copy file
Create thread
Read .ini file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1e8
mov eax, dword [0x100cf3f0]
xor eax, ebp
mov dword [ebp - 4], eax
cmp dword [0x100d10d0], 0
push esi
mov esi, dword [ebp + 8]
je 0x1000892f
call fcn.1001e2f0
push 0x15b0
call fcn.10045e63
add esp, 4
mov dword [0x100d10c4], eax
test eax, eax
jne 0x10008940
push 0x10
push dword [0x100cf03c]
push str.Unable_to_allocate_buffer
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
xor eax, eax
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100461c3
mov esp, ebp
pop ebp
ret
push edi
push 0x15b0
push 0
push eax
call fcn.10047d10
add esp, 0xc
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov ecx, dword [0x100d10c4]
mov dword [ecx], eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov eax, dword [0x100d10c4]
push dword [eax]
push 0
push 0x20000
call dword [sym.imp.KERNEL32.dll_OpenProcess]
mov ecx, dword [0x100d10c4]
mov edi, dword [sym.imp.USER32.dll_MessageBoxA]
mov dword [ecx + 8], eax
mov eax, dword [0x100d10c4]
cmp dword [eax + 8], 0
jne 0x100089a4
push 0x10
push dword [0x100cf03c]
push str.Cant_get_Diablo_IIs_process_handle
push 0
call edi
push 0x10
call fcn.10045e63
push 0x20
mov dword [0x100d10c0], eax
call fcn.10045e63
push 8
mov dword [0x100d10c8], eax
call fcn.10045e63
mov ecx, dword [0x100d10c0]
add esp, 0xc
mov dword [0x100d10cc], eax
test ecx, ecx
je 0x100089e2
cmp dword [0x100d10c8], 0
je 0x100089e2
test eax, eax
jne 0x100089f9
push 0x10
push dword [0x100cf03c]
push str.Unable_to_allocate_buffer
push 0
call edi
mov ecx, dword [0x100d10c0]
xorps xmm0, xmm0
movups xmmword [ecx], xmm0
mov eax, dword [0x100d10c8]
push 0x104
movups xmmword [eax], xmm0
mov eax, dword [0x100d10c8]
movups xmmword [eax + 0x10], xmm0
mov eax, dword [0x100d10cc]
movq qword [eax], xmm0
mov eax, dword [0x100d10c4]
mov ecx, dword [0x100d10d0]
mov dword [eax + 4], ecx
mov eax, dword [0x100d10c0]
mov ecx, dword [0x100d10d0]
mov dword [eax + 0xc], ecx
lea eax, [ebp - 0x108]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
jne 0x10008a6e
push 0x10
push dword [0x100cf03c]
push str.Unable_to_get_PluginPath_
push eax
call edi
pop edi
xor eax, eax
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100461c3
mov esp, ebp
pop ebp
ret
lea ecx, [ebp - 0x108]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10008a77
sub ecx, edx
je 0x10008aa7
cmp byte [ebp + ecx - 0x108], 0x5c
je 0x10008a93
sub ecx, 1
jne 0x10008a82
jmp 0x10008aa7
cmp ecx, 0x104
jae 0x100098b3
mov byte [ebp + ecx - 0x108], 0
lea ecx, [ebp - 0x108]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10008ab0
sub ecx, edx
lea eax, [ecx + 1]
push eax
call fcn.10045ea1
mov ecx, dword [0x100d10c0]
add esp, 4
mov dword [ecx + 8], eax
lea ecx, [ebp - 0x108]
mov eax, dword [0x100d10c0]
mov edx, dword [eax + 8]
nop dword [eax]
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [edx], al
lea edx, [edx + 1]
test al, al
jne 0x10008ae0
lea ecx, [ebp - 0x108]
dec ecx
mov al, byte [ecx + 1]
lea ecx, [ecx + 1]
test al, al
jne 0x10008af5
mov eax, dword [str.D2ESRutils.ini]
mov dword [ecx], eax
mov eax, dword [0x100b35fc]
mov dword [ecx + 4], eax
mov eax, dword [0x100b3600]
mov dword [ecx + 8], eax
mov eax, dword [0x100b3604]
mov dword [ecx + 0xc], eax
lea ecx, [ebp - 0x108]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10008b27
sub ecx, edx
lea eax, [ecx + 1]
push eax
call fcn.10045ea1
mov ecx, dword [0x100d10c4]
add esp, 4
mov dword [ecx + 0x48], eax
lea ecx, [ebp - 0x108]
mov eax, dword [0x100d10c4]
mov edx, dword [eax + 0x48]
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [edx], al
lea edx, [edx + 1]
test al, al
jne 0x10008b53
mov eax, dword [0x100d10c4]
push 0
push dword [eax + 0x48]
call fcn.100714ad
add esp, 8
test eax, eax
je 0x10008c4a
lea ecx, [ebp - 0x108]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10008b84
sub ecx, edx
add ecx, 0xfffffffc
cmp ecx, 0x104
jae 0x100098b3
mov byte [ebp + ecx - 0x108], al
lea ecx, [ebp - 0x108]
dec ecx
nop word [eax + eax]
mov al, byte [ecx + 1]
lea ecx, [ecx + 1]
test al, al
jne 0x10008bb0
mov eax, dword [str._New.ini]
mov dword [ecx], eax
mov eax, dword [0x100b360c]
mov dword [ecx + 4], eax
mov al, byte [0x100b3610]
mov byte [ecx + 8], al
lea eax, [ebp - 0x108]
push 0
push eax
call fcn.100714ad
add esp, 8
test eax, eax
je 0x10008c33
call fcn.10075963
push dword [eax]
mov eax, dword [0x100d10c4]
push dword [eax + 0x48]
lea eax, [ebp - 0x108]
push str.Unable_to_open_INI_file:_n__s_:_d
push 0x104
push eax
call fcn.100035c0
add esp, 0x14
lea eax, [ebp - 0x108]
push 0x10
push dword [0x100cf03c]
push eax
push 0
call edi
pop edi
xor eax, eax
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100461c3
mov esp, ebp
pop ebp
ret
mov eax, dword [0x100d10c4]
push 1
push dword [eax + 0x48]
lea eax, [ebp - 0x108]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileA]
mov eax, dword [0x100d10c0]
push 0x104
mov dword [eax], 2
mov ecx, dword [0x100d10c4]
movq xmm0, qword [str.Apr__9_2023]
movq qword [ecx + 0x28], xmm0
mov eax, dword [0x100b3640]
mov dword [ecx + 0x30], eax
mov ecx, dword [0x100d10c4]
movq xmm0, qword [str.22:35:10]
movq qword [ecx + 0x38], xmm0
mov al, byte [0x100b364c]
mov byte [ecx + 0x40], al
mov eax, dword [0x100d10c4]
mov dword [eax + 0xd4], 0
mov eax, dword [0x100d10c8]
mov dword [eax], fcn.10004e90
mov eax, dword [0x100d10c8]
mov dword [eax + 4], fcn.10004eb0
lea eax, [ebp - 0x108]
push eax
push str.InfoPrompt
push str.Misc
push str.D2ESRutils
call sym.D2ESRutils.dll_GetIniString
mov esi, dword [sym.imp.KERNEL32.dll_lstrcpynA]
add esp, 0x14
push 0x1f
test eax, eax
je 0x10008ce9
lea eax, [ebp - 0x108]
push eax
jmp 0x10008cee
push 0x100b365c
mov eax, dword [0x100d10c4]
add eax, 0x6c
push eax
call esi
push 0x104
lea eax, [ebp - 0x108]
push eax
push str.ErrorPrompt
push str.Misc
push str.D2ESRutils
call sym.D2ESRutils.dll_GetIniString
add esp, 0x14
push 0x1f
test eax, eax
je 0x10008d2b
lea eax, [ebp - 0x108]
push eax
jmp 0x10008d30
push 0x100b3674
mov eax, dword [0x100d10c4]
add eax, 0x4c
push eax
call esi
push 0x104
lea eax, [ebp - 0x108]
push eax
push str.VerbosePrompt
push str.Misc
push str.D2ESRutils
call sym.D2ESRutils.dll_GetIniString
add esp, 0x14
push 0x1f
test eax, eax
je 0x10008d6d
lea eax, [ebp - 0x108]
push eax
jmp 0x10008d72
push 0x100b3690
mov eax, dword [0x100d10c4]
add eax, 0x8c
push eax
call esi
push 0x104
lea eax, [ebp - 0x108]
push eax
push str.Verbose
push str.Misc
push str.D2ESRutils
call sym.D2ESRutils.dll_GetIniString
add esp, 0x14
test eax, eax
je 0x10008dcf
lea eax, [ebp - 0x108]
push 0x100b2cd4
push eax
call fcn.10054eac
add esp, 8
test eax, eax
jne 0x10008dcf
mov eax, dword [0x100d10c4]
mov dword [eax + 0xac], 1
jmp 0x10008dde
mov eax, dword [0x100d10c4]
mov dword [eax + 0xac], 0
push 0x104
lea eax, [ebp - 0x108]
push eax
push str.CommandCharacter
push str.Misc
push str.D2ESRutils
call sym.D2ESRutils.dll_GetIniString
movzx ecx, byte [ebp - 0x108]
add esp, 0x14
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
test eax, eax
mov eax, dword [0x100d10c4]
mov edx, 0x2e
cmovne edx, ecx
mov byte [eax + 0xb0], dl
mov eax, dword [0x100d10c4]
push dword [eax + 0x48]
push 0xa
push str.TickRate
push str.Misc
call esi
mov ecx, dword [0x100d10c4]
mov dword [ecx + 0xb4], eax
mov eax, dword [0x100d10c4]
push dword [eax + 0x48]
push 0x96
push str.ItemTimeout
push str.Vendor
call esi
mov ecx, dword [0x100d10c4]
mov dword [ecx + 0xb8], eax
mov eax, dword [0x100d10c4]
push dword [eax + 0x48]
push 0x12c
push str.MenuTimeout
push str.Vendor
call esi
mov ecx, dword [0x100d10c4]
mov dword [ecx + 0xbc], eax
mov eax, dword [0x100d10c4]
push dword [eax + 0x48]
push 0x64
push str.InteractTimeout
push str.Vendor
call esi
mov ecx, dword [0x100d10c4]
mov dword [ecx + 0xc0], eax
mov eax, dword [0x100d10c4]
push dword [eax + 0x48]
push 0x64
push str.WalkToTimeout
push str.Vendor
call esi
mov ecx, dword [0x100d10c4]
mov dword [ecx + 0xc4], eax
lea eax, [ebp - 0x1e4]
push eax
push str.GamePrintStringLocation
push str.D2ESRutils
call sym.D2ESRutils.dll_GetFingerprint
add esp, 0xc
test eax, eax
jne 0x10008f12
push 0x10
push dword [0x100cf03c]
push str.Fingerprint_information_for_GamePrintStringLocation_nmissing_or_corrupt_
push eax
call edi
pop edi
xor eax, eax
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100461c3
mov esp, ebp
pop ebp
ret
mov ecx, dword [0x100d10c4]
mov eax, dword [ebp - 0x10c]
mov dword [ecx + 0xb3c], eax
mov eax, dword [0x100d10c4]
cmp dword [eax + 0xb3c], 0
jne 0x10008f55
push 0x10
push dword [0x100cf03c]
push str.Unable_to_find_entrypoint_for_GamePrintStringLocation_
push 0
call edi
pop edi
xor eax, eax
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100461c3
mov esp, ebp
pop ebp
ret
lea eax, [ebp - 0x1e4]
push eax
push str.pPlayerInfoStruct
push str.D2ESRutils
call sym.D2ESRutils.dll_GetFingerprint
add esp, 0xc
test eax, eax
je 0x10009894
mov eax, dword [ebp - 0x10c]
mov eax, dword [eax]
mov ecx, dword [eax]
mov eax, dword [0x100d10cc]
mov dword [eax], ecx
lea eax, [ebp - 0x1e4]
push eax
push str.pGameInfoStruct
push str.D2ESRutils
call sym.D2ESRutils.dll_GetFingerprint
add esp, 0xc
test eax, eax
je 0x10009894
mov eax, dword [ebp - 0x10c]
mov eax, dword [eax]
mov ecx, dword [eax]
mov eax, dword [0x100d10cc]
mov dword [eax + 4], ecx
mov eax, dword [0x100d10c4]
mov dword [eax + 0xb4c], 0
lea eax, [ebp - 0x1e4]
push eax
push 0x100b37dc
push str.D2ESRutils
call sym.D2ESRutils.dll_GetFingerprint
add esp, 0xc
test eax, eax
je 0x10008ff7
mov eax, dword [0x100d10c4]
mov ecx, dword [ebp - 0x10c]
mov dword [eax + 0xb4c], ecx
mov eax, dword [0x100d10c4]
mov dword [eax + 0xb50], 0
lea eax, [ebp - 0x1e4]
push eax
push 0x100b37f4
push str.D2ESRutils
call sym.D2ESRutils.dll_GetFingerprint
add esp, 0xc
test eax, eax
je 0x10009034
mov eax, dword [0x100d10c4]
mov ecx, dword [ebp - 0x10c]
mov dword [eax + 0xb50], ecx
mov eax, dword [0x100d10c4]
mov dword [eax + 0xb40], 0
lea eax, [ebp - 0x1e4]
push eax
push str.GameKeyDownIntercept
push str.D2ESRutils
call sym.D2ESRutils.dll_GetFingerprint
add esp, 0xc
test eax, eax
je 0x10009071
mov eax, dword [0x100d10c4]
mov ecx, dword [ebp - 0x10c]
mov dword [eax + 0xb40], ecx
mov eax, dword [0x100d10c4]
mov esi, dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
add eax, 0xc
push eax
call esi
push 0x100d12a4
call esi
mov eax, dword [0x100d10c4]
mov dword [eax + 0xb28], 0
mov ecx, dword [0x100d10c4]
lea eax, [ecx + 0x38]
push eax
lea eax, [ecx + 0x28]
mov ecx, dword [0x100d10c0]
push eax
movzx eax, word [ecx + 2]
push eax
movzx eax, word [ecx]
push eax
lea eax, [ebp - 0x108]
push str.Starting
push eax
call fcn.10002170
lea eax, [ebp - 0x108]
push eax
call sym.D2ESRutils.dll_GamePrintInfo
mov eax, dword [0x100d10c4]
mov dword [eax + 0xd4], 1
lea eax, [ebp - 0x1e4]
push eax
push str.LoaderStruct
push str.D2ESRutils
call sym.D2ESRutils.dll_GetFingerprint
add esp, 0x28
test eax, eax
jne 0x100091a7
mov eax, dword [0x100d10c4]
mov dword [eax + 0xd4], 0
mov eax, dword [0x100b3864]
push dword [ebp - 0x114]
movq xmm0, qword [str.Diablo_II.exe]
mov dword [ebp - 0x19c], eax
mov ax, word [0x100b3868]
mov word [ebp - 0x198], ax
lea eax, [ebp - 0x194]
push eax
lea eax, [ebp - 0x1a4]
movq qword [ebp - 0x1a4], xmm0
push eax
call fcn.10004ed0
mov ecx, eax
add esp, 0xc
mov dword [ebp - 0x10c], ecx
cmp ecx, 0x100
jae 0x100091ad
lea eax, [ebp - 0x1a4]
push str.D2Loader.exe
push eax
call fcn.10002170
push dword [ebp - 0x114]
lea eax, [ebp - 0x194]
push eax
lea eax, [ebp - 0x1a4]
push eax
call fcn.10004ed0
mov ecx, eax
add esp, 0x14
xor eax, eax
cmp ecx, 0x100
cmovb ecx, eax
mov dword [ebp - 0x10c], ecx
jmp 0x100091ad
mov ecx, dword [ebp - 0x10c]
mov eax, dword [0x100d10c4]
mov dword [eax + 0x24], ecx
mov eax, dword [0x100d10c4]
push dword [eax + 0xb3c]
lea eax, [ebp - 0x108]
push str.Found_GamePrintStringLocation_at__.8x
push eax
call fcn.10002170
lea eax, [ebp - 0x108]
push eax
call sym.D2ESRutils.dll_GamePrintVerbose
mov eax, dword [0x100d10c4]
mov dword [eax + 0xb54], 1
lea eax, [ebp - 0x1e4]
push eax
push str.GameSendPacketToGameLocation
push str.D2ESRutils
call sym.D2ESRutils.dll_GetFingerprint
add esp, 0x1c
test eax, eax
je 0x10009894
mov ecx, dword [0x100d10c4]
mov eax, dword [ebp - 0x10c]
mov dword [ecx + 0xb48], eax
mov eax, dword [0x100d10c4]
mov dword [eax + 0xd4], 1
lea eax, [ebp - 0x1e4]
push eax
push str.BnetConnStruct
push str.D2ESRutils
call sym.D2ESRutils.dll_GetFingerprint
add esp, 0xc
test eax, eax
je 0x1000926e
mov eax, dword [ebp - 0x10c]
mov ecx, dword [eax]
mov eax, dword [0x100d10c4]
mov dword [eax + 0xb58], ecx
mov eax, dword [0x100d10c4]
cmp dword [eax + 0xb58], 0
jne 0x10009282
jmp 0x10009273
mov eax, dword [0x100d10c4]
mov dword [eax + 0xb54], 0
mov eax, dword [0x100d10c4]
mov dword [eax + 0xd4], 0
mov eax, dword [0x100d10c4]
cmp dword [eax + 0xb54], 0
je 0x100093a1
lea eax, [ebp - 0x1e4]
push eax
push str.RealmConnStruct
push str.D2ESRutils
call sym.D2ESRutils.dll_GetFingerprint
add esp, 0xc
test eax, eax
je 0x100092de
mov eax, dword [ebp - 0x10c]
mov ecx, dword [eax]
mov eax, dword [0x100d10c4]
mov dword [eax + 0xb5c], ecx
mov eax, dword [0x100d10c4]
cmp dword [eax + 0xb5c], 0
jne 0x100092f2
jmp 0x100092e3
mov eax, dword [0x100d10c4]
mov dword [eax + 0xb54], 0
mov eax, dword [0x100d10c4]
cmp dword [eax + 0xb54], 0
je 0x100093a1
add eax, 0xdf4
push eax
push str.BnetRecvSave
push str.D2ESRutils
call sym.D2ESRutils.dll_GetFingerprint
add esp, 0xc
test eax, eax
mov eax, dword [0x100d10c4]
jne 0x1000932f
mov dword [eax + 0xb54], 0
mov eax, dword [0x100d10c4]
cmp dword [eax + 0xb54], 0
je 0x100093a1
add eax, 0xed0
push eax
push str.BnetRecv
push str.D2ESRutils
call sym.D2ESRutils.dll_GetFingerprint
add esp, 0xc
test eax, eax
mov eax, dword [0x100d10c4]
jne 0x10009368
mov dword [eax + 0xb54], 0
mov eax, dword [0x100d10c4]
cmp dword [eax + 0xb54], 0
je 0x100093a1
add eax, 0xfac
push eax
push str.BnetSent
push str.D2ESRutils
call sym.D2ESRutils.dll_GetFingerprint
add esp, 0xc
test eax, eax
mov eax, dword [0x100d10c4]
jne 0x100093a1
mov dword [eax + 0xb54], 0
mov eax, dword [0x100d10c4]
add eax, 0xb60
push eax
push str.GamePacketReceivedIntercept
push str.D2ESRutils
call sym.D2ESRutils.dll_GetFingerprint
add esp, 0xc
test eax, eax
je 0x10009864
mov eax, dword [0x100d10c4]
add eax, 0xc3c
push eax
push str.GamePacketReceivedIntercept2
push str.D2ESRutils
call sym.D2ESRutils.dll_GetFingerprint
add esp, 0xc
test eax, eax
je 0x10009864
mov eax, dword [0x100d10c4]
add eax, 0xd18
push eax
push str.GamePacketSentIntercept
push str.D2ESRutils
call sym.D2ESRutils.dll_GetFingerprint
add esp, 0xc
test eax, eax
je 0x10009864
mov eax, dword [0x100d10c4]
add eax, 0x1088
push eax
push str.GamePlayerInfoIntercept
push str.D2ESRutils
call sym.D2ESRutils.dll_GetFingerprint
add esp, 0xc
test eax, eax
je 0x10009864
mov eax, dword [0x100d10c4]
add eax, 0x1164
push eax
push str.AntiDetectPacket64Intercept
push str.D2ESRutils
call sym.D2ESRutils.dll_GetFingerprint
add esp, 0xc
test eax, eax
je 0x10009864
mov eax, dword [0x100d10c4]
add eax, 0x1240
push eax
push str.AntiDetectPacket65Intercept
push str.D2ESRutils
call sym.D2ESRutils.dll_GetFingerprint
add esp, 0xc
test eax, eax
je 0x10009864
mov eax, dword [0x100d10c4]
add eax, 0x131c
push eax
push str.AntiDetectVersionCheckingDllIntercept
push str.D2ESRutils
call sym.D2ESRutils.dll_GetFingerprint
add esp, 0xc
test eax, eax
je 0x10009864
mov eax, dword [0x100d10c4]
add eax, 0x13f8
push eax
push str.AntiDetectExtraworkDllIntercept
push str.D2ESRutils
call sym.D2ESRutils.dll_GetFingerprint
add esp, 0xc
test eax, eax
je 0x10009864
mov eax, dword [0x100d10c4]
add eax, 0x14d4
push eax
push str.GameKeyDownIntercept
push str.D2ESRutils
call sym.D2ESRutils.dll_GetFingerprint
add esp, 0xc
test eax, eax
je 0x10009864
lea eax, [ebp - 0x1e4]
push eax
push str.GameSendPacketToGameLocation
push str.D2ESRutils
call sym.D2ESRutils.dll_GetFingerprint
add esp, 0xc
test eax, eax
je 0x10009864
mov ecx, dword [0x100d10c4]
mov eax, dword [ebp - 0x10c]
push 0x10003760
mov dword [ecx + 0xb48], eax
mov eax, dword [0x100d10c4]
mov esi, dword [eax + 0xc34]
call fcn.10003ff0
push esi
push eax
mov eax, dword [0x100d10c4]
push dword [eax + 0xc38]
push 0xe8
call sym.D2ESRutils.dll_Intercept
mov eax, dword [0x100d10c4]
push 0x100036d0
mov esi, dword [eax + 0xd10]
call fcn.10003ff0
push esi
push eax
mov eax, dword [0x100d10c4]
push dword [eax + 0xd14]
push 0xe9
call sym.D2ESRutils.dll_Intercept
mov eax, dword [0x100d10c4]
push 0x100038d0
mov esi, dword [eax + 0xdec]
call fcn.10003ff0
push esi
push eax
mov eax, dword [0x100d10c4]
push dword [eax + 0xdf0]
push 0xe8
call sym.D2ESRutils.dll_Intercept
mov eax, dword [0x100d10c4]
push 0x10003ad0
mov esi, dword [eax + 0x115c]
call fcn.10003ff0
add esp, 0x40
push esi
push eax
mov eax, dword [0x100d10c4]
push dword [eax + 0x1160]
push 0xe8
call sym.D2ESRutils.dll_Intercept
mov eax, dword [0x100d10c4]
push 0x1000a870
mov esi, dword [eax + 0x1238]
call fcn.10003ff0
push esi
push eax
mov eax, dword [0x100d10c4]
push dword [eax + 0x123c]
push 0xe8
call sym.D2ESRutils.dll_Intercept
mov eax, dword [0x100d10c4]
push 0x1000a8b0
mov esi, dword [eax + 0x1314]
call fcn.10003ff0
push esi
push eax
mov eax, dword [0x100d10c4]
push dword [eax + 0x1318]
push 0xe8
call sym.D2ESRutils.dll_Intercept
mov eax, dword [0x100d10c4]
push 0x1000a990
mov esi, dword [eax + 0x13f0]
call fcn.10003ff0
push esi
push eax
mov eax, dword [0x100d10c4]
push dword [eax + 0x13f4]
push 0xe8
call sym.D2ESRutils.dll_Intercept
mov eax, dword [0x100d10c4]
add esp, 0x4c
mov esi, dword [eax + 0x14cc]
push 0x1000a860
call fcn.10003ff0
push esi
push eax
mov eax, dword [0x100d10c4]
push dword [eax + 0x14d0]
push 0xe8
call sym.D2ESRutils.dll_Intercept
mov eax, dword [0x100d10c4]
push 0x1000ac50
mov esi, dword [eax + 0x15a8]
call fcn.10003ff0
push esi
push eax
mov eax, dword [0x100d10c4]
push dword [eax + 0x15ac]
push 0xe8
call sym.D2ESRutils.dll_Intercept
mov eax, dword [0x100d10c4]
add esp, 0x28
cmp dword [eax + 0xb54], 0
je 0x1000974a
mov esi, dword [eax + 0xec8]
push 0x10003620
call fcn.10003ff0
push esi
push eax
mov eax, dword [0x100d10c4]
push dword [eax + 0xecc]
push 0xe9
call sym.D2ESRutils.dll_Intercept
mov eax, dword [0x100d10c4]
push 0x10003610
mov esi, dword [eax + 0xfa4]
call fcn.10003ff0
push esi
push eax
mov eax, dword [0x100d10c4]
push dword [eax + 0xfa8]
push 0xe8
call sym.D2ESRutils.dll_Intercept
mov eax, dword [0x100d10c4]
push 0x100037b0
mov esi, dword [eax + 0x1080]
call fcn.10003ff0
push esi
push eax
mov eax, dword [0x100d10c4]
push dword [eax + 0x1084]
push 0xe9
call sym.D2ESRutils.dll_Intercept
mov eax, dword [0x100d10c4]
add esp, 0x3c
mov dword [ebp - 0x1e8], 0
mov dword [eax + 0xc8], 0
lea eax, [ebp - 0x1e8]
push eax
push 0
push 0x100d1208
push 0x10009d00
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov ecx, dword [0x100d10c4]
push 1
mov dword [ecx + 0xd0], eax
xor ecx, ecx
mov eax, dword [0x100d10c4]
cmp dword [eax + 0xd0], ecx
setne cl
mov dword [eax + 0xcc], ecx
push dword [0x100d10d0]
call fcn.10001960
add esp, 8
call fcn.100202a0
test eax, eax
jne 0x100097c3
push str.D2InitializeScreenHook_Failed_
call sym.D2ESRutils.dll_GamePrintError
add esp, 4
push 0x104
lea eax, [ebp - 0x108]
mov byte [ebp - 0x108], 0
push eax
push str.Banner
push str.Misc
push str.D2ESRutils
call sym.D2ESRutils.dll_GetIniString
mov eax, dword [0x100d10cc]
add esp, 0x14
mov dword [0x100d12a0], 0
cmp dword [eax], 0
je 0x1000980a
push eax
call fcn.10006b90
add esp, 4
push 0x104
lea eax, [ebp - 0x108]
push eax
push str.Autoload
push str.Misc
push str.D2ESRutils
call sym.D2ESRutils.dll_GetIniString
add esp, 0x14
test eax, eax
je 0x10009842
lea eax, [ebp - 0x108]
push 0
push eax
call fcn.100030f0
add esp, 8
push str.D2ESRutils__Loaded__Type
call sym.D2ESRutils.dll_GamePrintInfo
add esp, 4
mov eax, 1
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100461c3
mov esp, ebp
pop ebp
ret
push str.Fatal_error__Exiting_
call sym.D2ESRutils.dll_GamePrintError
add esp, 4
push 0x10
push dword [0x100cf03c]
push str.Unable_to_find_some_crucial_fingerprint_definition_in_D2ESRutils.ini_
push 0
call edi
pop edi
xor eax, eax
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100461c3
mov esp, ebp
pop ebp
ret
push str.Fatal_error__Exiting_
call sym.D2ESRutils.dll_GamePrintError
mov ecx, dword [ebp - 4]
add esp, 4
xor ecx, ebp
xor eax, eax
pop edi
pop esi
call fcn.100461c3
mov esp, ebp
pop ebp
ret
call fcn.10045fd1
int3