Function at 0x1003d570
Capabilities:
Create thread
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x88
mov eax, dword [0x10122094]
xor eax, esp
mov dword [esp + 0x84], eax
push esi
push edi
push 0x40
call fcn.100b4eaa
mov esi, eax
add esp, 4
push 0x2c
mov dword [esi], 0
mov dword [esi + 4], 0
call fcn.100b4eaa
add esp, 4
mov dword [0x1012f0e0], esi
mov dword [eax], eax
mov dword [eax + 4], eax
mov dword [eax + 8], eax
mov word [eax + 0xc], 0x101
mov dword [esi], eax
push 0x2c
mov dword [esi + 0xc], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0
mov dword [esi + 0x18], 0
mov dword [esi + 0x1c], 0
mov dword [esi + 0x20], 0
mov dword [esi + 0x24], 0
mov dword [esi + 0x28], 0
mov dword [esi + 0x2c], 0
mov dword [esi + 0x30], 0
mov dword [esi + 0x34], 0
mov dword [esi + 0x38], 0
mov dword [esi + 0x3c], 0
call fcn.100b4eaa
sub esp, 0x14
mov esi, eax
mov ecx, esp
push 0xf
push str.BH_settings.cfg
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
call fcn.1003f030
mov ecx, esi
call fcn.1003c7c0
mov ecx, eax
mov dword [0x1012f0e8], eax
call fcn.10048e20
test al, al
jne 0x1003d8f8
push 0xe
push str.BH_Default.cfg
lea ecx, [esp + 0x18]
mov dword [esp + 0x18], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 0xf
call fcn.1003f030
mov ecx, dword [0x1012f0e8]
lea eax, [esp + 0x10]
cmp ecx, eax
je 0x1003d6b3
cmp dword [esp + 0x24], 0x10
push dword [esp + 0x20]
cmovae eax, dword [esp + 0x14]
push eax
call fcn.1003f030
mov edx, dword [esp + 0x24]
cmp edx, 0x10
jb 0x1003d6e9
mov ecx, dword [esp + 0x10]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1003d6df
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1003e047
push edx
push ecx
call fcn.100b4eda
add esp, 8
mov ecx, dword [0x1012f0e8]
call fcn.10048e20
test al, al
jne 0x1003d8f8
mov ecx, dword [0x101252d4]
mov eax, 0x7fffffff
sub eax, ecx
cmp eax, 0x2e
jb 0x1003e04c
cmp dword [0x101252d8], 0x10
mov eax, 0x101252c4
push ecx
cmovae eax, dword [0x101252c4]
push eax
push 0x2e
push str.Could_not_find_BH_settings._nAttempted_to_load
push ecx
push dword [esp + 0x20]
lea ecx, [esp + 0x8c]
call fcn.1003f600
push str.BH_settings.cfg__failed_._nAttempted_to_load
lea ecx, [esp + 0x78]
call fcn.1003eb50
push 0x101252c4
lea ecx, [esp + 0x34]
movups xmm0, xmmword [eax]
movups xmmword [esp + 0x34], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [esp + 0x44], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
call fcn.1003ebc0
push str.BH_Default.cfg__failed_._n_nDefaults_loaded.
lea ecx, [esp + 0x14]
movups xmm0, xmmword [eax]
movups xmmword [esp + 0x14], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [esp + 0x24], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
call fcn.1003eb50
movups xmm0, xmmword [eax]
movups xmmword [esp + 0x50], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [esp + 0x60], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov edx, dword [esp + 0x24]
cmp edx, 0x10
jb 0x1003d80b
mov ecx, dword [esp + 0x10]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1003d801
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1003e051
push edx
push ecx
call fcn.100b4eda
add esp, 8
mov edx, dword [esp + 0x44]
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0xf
mov byte [esp + 0x10], 0
cmp edx, 0x10
jb 0x1003d856
mov ecx, dword [esp + 0x30]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1003d84c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1003e051
push edx
push ecx
call fcn.100b4eda
add esp, 8
mov edx, dword [esp + 0x88]
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], 0xf
mov byte [esp + 0x30], 0
cmp edx, 0x10
jb 0x1003d8a4
mov ecx, dword [esp + 0x74]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1003d89a
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1003e051
push edx
push ecx
call fcn.100b4eda
add esp, 8
cmp dword [esp + 0x64], 0x10
lea eax, [esp + 0x50]
push 0
cmovae eax, dword [esp + 0x54]
push str.Failed_to_load_BH_config
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
mov edx, dword [esp + 0x64]
cmp edx, 0x10
jb 0x1003d8f8
mov ecx, dword [esp + 0x50]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1003d8ee
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1003e056
push edx
push ecx
call fcn.100b4eda
add esp, 8
push 0x2c
call fcn.100b4eaa
sub esp, 0x14
mov esi, eax
mov ecx, esp
push 6
push str.BH.cfg
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
call fcn.1003f030
mov ecx, esi
call fcn.1003c7c0
mov ecx, eax
mov dword [0x1012f0c8], eax
call fcn.10048e20
sub esp, 0x28
mov eax, esp
mov dword [eax], vtable.std::_Func_impl_no_alloc_class__lambda_f72db605469d41425786b5bffcec1cf3___void___.0
mov dword [eax + 0x24], eax
call fcn.100b24f0
push 0x78
call fcn.100b4eaa
add esp, 0x14
mov esi, eax
mov ecx, esp
push 0x18
push str.BH_1.9.10_b3.1._dfa4542
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
call fcn.1003f030
sub esp, 8
mov ecx, esi
call fcn.1005b9a0
push 0
push 0
push 0
push 0
mov dword [0x1012f0cc], eax
call dword [sym.imp.KERNEL32.dll_CreateEventA]
mov dword [0x1012f154], eax
mov edi, 2
push 8
call fcn.100b4eaa
add esp, 4
mov esi, eax
push 0
push 0
push esi
push 0x100b2440
push 0
push 0
mov byte [esi], 0
mov dword [esi + 4], 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [esi + 4], eax
mov eax, dword [0x1013aec8]
mov dword [esp + 0xc], esi
cmp eax, dword [0x1013aecc]
je 0x1003d9ea
mov dword [eax], esi
add dword [0x1013aec8], 4
jmp 0x1003da14
lea ecx, [esp + 0xc]
push ecx
push eax
call fcn.100b2760
mov esi, dword [esp + 0xc]
test esi, esi
je 0x1003da14
push dword [esi + 4]
mov byte [esi], 1
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 8
push esi
call fcn.100b4eda
add esp, 8
sub edi, 1
jne 0x1003d9a1
sub esp, 0x28
mov eax, esp
mov dword [eax], vtable.std::_Func_impl_no_alloc_class__lambda_c85c88ee0229cfd85cc5b5afd80e4a7c___void___.0
mov dword [eax + 0x24], eax
call fcn.100b24f0
push 0x210
call fcn.100b4eaa
add esp, 0x2c
mov ecx, eax
call fcn.1003c8e0
push 0x34
call fcn.100b4eaa
sub esp, 0x14
mov esi, eax
mov ecx, esp
push 0xa
push str.Gamefilter
mov dword [ecx], edi
mov dword [ecx + 0x10], edi
mov dword [ecx + 0x14], 0xf
call fcn.1003f030
mov ecx, esi
call fcn.100956d0
mov dword [esi], vtable.Gamefilter.0
push 0x2c
mov dword [esi + 0x24], edi
mov dword [esi + 0x28], edi
call fcn.100b4eaa
add esp, 4
mov dword [eax], eax
mov dword [eax + 4], eax
mov dword [eax + 8], eax
mov word [eax + 0xc], 0x101
push 0x3c
mov dword [esi + 0x24], eax
call fcn.100b4eaa
sub esp, 0x14
mov esi, eax
mov ecx, esp
push 4
push str.Bnet
mov dword [ecx], edi
mov dword [ecx + 0x10], edi
mov dword [ecx + 0x14], 0xf
call fcn.1003f030
mov ecx, esi
call fcn.100956d0
mov dword [esi], vtable.Bnet.0
push 0x2c
mov dword [esi + 0x24], edi
mov dword [esi + 0x28], edi
call fcn.100b4eaa
add esp, 4
mov dword [eax], eax
mov dword [eax + 4], eax
mov dword [eax + 8], eax
mov word [eax + 0xc], 0x101
push 0x2c
mov dword [esi + 0x24], eax
call fcn.100b4eaa
sub esp, 0x14
mov esi, eax
mov ecx, esp
push 4
push str.Item
mov dword [ecx], edi
mov dword [ecx + 0x10], edi
mov dword [ecx + 0x14], 0xf
call fcn.1003f030
mov ecx, esi
call fcn.100956d0
push 0xe4
mov dword [esi], vtable.Item.0
call fcn.100b4eaa
sub esp, 0x14
mov esi, eax
mov ecx, esp
push 8
mov dword [ecx], edi
mov dword [ecx + 0x10], edi
mov dword [ecx + 0x14], 0xf
push str.AutoTele
call fcn.1003f030
mov ecx, esi
call fcn.100956d0
mov dword [esi], vtable.AutoTele.0
push 0x30
mov dword [esi + 0x24], edi
mov dword [esi + 0x28], edi
call fcn.100b4eaa
mov edi, dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
add esp, 4
mov dword [eax], eax
mov dword [eax + 4], eax
mov dword [eax + 8], eax
mov word [eax + 0xc], 0x101
mov dword [esi + 0x24], eax
lea eax, [esi + 0xb8]
push eax
mov dword [esi + 0xb0], vtable.CSyncObj.0
call edi
mov byte [esi + 0xb4], 0
mov dword [esi + 0xb0], vtable.CArrayEx_struct_tagPOINT__struct_tagPOINT_.0
mov dword [esi + 0xd0], 0
mov dword [esi + 0xd4], 0
mov dword [esi + 0xd8], 0
mov dword [esi + 0xdc], 0
push 0x38
mov dword [esi + 0xe0], 0
call fcn.100b4eaa
sub esp, 0x14
mov esi, eax
mov ecx, esp
push 5
push str.Party
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
call fcn.1003f030
mov ecx, esi
call fcn.100956d0
mov dword [esi], vtable.Party.0
push 0x30
mov dword [esi + 0x24], 0
mov dword [esi + 0x28], 0
call fcn.100b4eaa
add esp, 4
mov dword [eax], eax
mov dword [eax + 4], eax
mov dword [eax + 8], eax
mov word [eax + 0xc], 0x101
mov dword [esi + 0x24], eax
push 0x2c
mov dword [esi + 0x2c], 0
mov dword [esi + 0x30], 0
call fcn.100b4eaa
add esp, 4
mov dword [eax], eax
mov dword [eax + 4], eax
mov dword [eax + 8], eax
mov word [eax + 0xc], 0x101
push 0xa0
mov dword [esi + 0x2c], eax
call fcn.100b4eaa
sub esp, 0x14
mov esi, eax
mov ecx, esp
push 0xa
push str.Item_Mover
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
call fcn.1003f030
mov ecx, esi
call fcn.100956d0
mov dword [esi], vtable.ItemMover.0
mov byte [esi + 0x24], 0
mov dword [esi + 0x28], 0
mov dword [esi + 0x2c], 0
mov dword [esi + 0x30], 0
mov dword [esi + 0x34], 0
mov dword [esi + 0x38], 0
xorps xmm0, xmm0
mov dword [esi + 0x3c], 3
mov dword [esi + 0x40], 0
lea eax, [esi + 0x80]
mov dword [esi + 0x44], 0
mov dword [esi + 0x48], 0
movups xmmword [esi + 0x60], xmm0
push eax
movups xmmword [esi + 0x70], xmm0
call edi
push 0x5c
call fcn.100b4eaa
sub esp, 0x14
mov edi, eax
mov ecx, esp
push 0xb
push str.StashExport
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
call fcn.1003f030
mov ecx, edi
call fcn.100956d0
mov dword [edi], vtable.StashExport.0
mov dword [edi + 0x24], 0
mov dword [edi + 0x34], 0
mov dword [edi + 0x38], 0xf
push 0x40
mov dword [edi + 0x3c], 0
mov dword [edi + 0x40], 0
call fcn.100b4eaa
add esp, 4
lea ecx, [edi + 0x24]
mov dword [eax], eax
mov dword [eax + 4], eax
mov dword [eax + 8], eax
mov word [eax + 0xc], 0x101
mov dword [edi + 0x3c], eax
push 4
push str.json
mov dword [edi + 0x48], 0
mov dword [edi + 0x50], 0
mov dword [edi + 0x54], 0
mov dword [edi + 0x58], 0
call fcn.1003f030
push 0x1cc
call fcn.100b4eaa
add esp, 4
mov ecx, eax
call fcn.1008ba00
push 0x30
call fcn.100b4eaa
sub esp, 0x14
mov esi, eax
mov ecx, esp
push 0xa
push str.Chat_Color
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
call fcn.1003f030
mov ecx, esi
call fcn.100956d0
mov dword [esi], vtable.ChatColor.0
mov byte [esi + 0x24], 0
push 0x2c
mov dword [esi + 0x28], 0
mov dword [esi + 0x2c], 0
call fcn.100b4eaa
sub esp, 0x14
mov ecx, esp
mov dword [eax], eax
mov dword [eax + 4], eax
mov dword [eax + 8], eax
mov word [eax + 0xc], 0x101
mov dword [esi + 0x28], eax
push 4
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
push str.bnet
call fcn.1003f030
call fcn.10096b60
sub esp, 0x18
add eax, 0x24
mov ecx, esp
mov dword [0x1012f0ec], eax
push 0xa
push str.gamefilter
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
call fcn.1003f030
call fcn.10096b60
mov ecx, dword [0x1012f0e0]
add eax, 0x24
mov dword [0x1012f0e4], eax
mov dword [esp + 0xc], ecx
mov eax, dword [ecx]
mov esi, dword [eax]
cmp esi, eax
je 0x1003df45
mov edi, dword [esi + 0x28]
cmp byte [edi + 0x1c], 0
jne 0x1003df03
push ecx
push edi
call fcn.10095880
push ecx
push edi
call fcn.10095910
push ecx
push edi
call fcn.100959a0
push ecx
push edi
call fcn.10095a30
push ecx
push edi
call fcn.10095ac0
push ecx
push edi
call fcn.10095b50
push ecx
push edi
call fcn.10095be0
push ecx
push edi
call fcn.10095c70
push ecx
push edi
call fcn.10095d00
push ecx
push edi
call fcn.10095d90
push ecx
push edi
call fcn.10095e20
push ecx
push edi
call fcn.10095eb0
push ecx
push edi
call fcn.10095f40
push ecx
push edi
mov ecx, edi
call fcn.10095fd0
mov eax, dword [edi]
mov ecx, edi
mov byte [edi + 0x1c], 1
call dword [eax + 4]
mov ecx, dword [esp + 0xc]
mov eax, dword [esi + 8]
cmp byte [eax + 0xd], 0
je 0x1003df29
mov eax, dword [esi + 4]
cmp byte [eax + 0xd], 0
jne 0x1003df25
cmp esi, dword [eax + 8]
jne 0x1003df25
mov esi, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0xd], 0
je 0x1003df15
mov esi, eax
jmp 0x1003df3d
mov esi, eax
mov eax, dword [esi]
cmp byte [eax + 0xd], 0
jne 0x1003df3d
mov esi, eax
mov eax, dword [esi]
cmp byte [eax + 0xd], 0
je 0x1003df33
cmp esi, dword [ecx]
jne 0x1003de87
push 0x68
call fcn.100b4eaa
sub esp, 0x14
mov esi, eax
mov ecx, esp
push 5
push str.Stats
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
call fcn.1003f030
mov ecx, esi
call fcn.10059740
sub esp, 0x18
mov dword [0x1012f0d0], eax
mov ecx, esp
push 8
push str.autotele
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
call fcn.1003f030
call fcn.10096b60
sub esp, 0x18
add eax, 0x24
mov ecx, esp
mov dword [0x1012f0d8], eax
push 4
push str.item
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
call fcn.1003f030
call fcn.10096b60
mov dword [0x1012f0f0], 0x1012f2d0
xor esi, esi
nop word [eax + eax]
mov ecx, dword [esi + 0x1013aed0]
call fcn.100ac5e0
add esi, 4
cmp esi, 0x2c
jb 0x1003dff0
call fcn.10036be0
test eax, eax
jne 0x1003e017
mov ecx, dword [0x1012f158]
call fcn.100ac5e0
push 0
push 0
push 0
push 0x10054930
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov ecx, dword [esp + 0x8c]
pop edi
pop esi
xor ecx, esp
mov byte [0x1012f0dc], 1
call fcn.100b4e9c
mov esp, ebp
pop ebp
ret
call fcn.100ba49f
call fcn.10036790
call fcn.100ba49f
call fcn.100ba49f
int3