Function at 0x10009020
Capabilities:
Read .ini file

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1005f795
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x178
mov eax, dword [0x1007c080]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov esi, dword [edi + 0x10]
lea ecx, [ebp - 0x14c]
push 0x1a
xorps xmm0, xmm0
mov dword [ebp - 0x13c], 0
push str.LeftTurnSpellbookAutostand
movups xmmword [ebp - 0x14c], xmm0
mov dword [ebp - 0x138], 0
call fcn.100054b0
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x134]
push 4
xorps xmm0, xmm0
mov dword [ebp - 0x124], 0
push 0x1006cb04
movups xmmword [ebp - 0x134], xmm0
mov dword [ebp - 0x120], 0
call fcn.100054b0
cmp dword [esi + 0x14], 0xf
jbe 0x100090d5
mov esi, dword [esi]
cmp dword [ebp - 0x138], 0xf
lea edx, [ebp - 0x118]
push esi
push pe_nt_image_headers32
push edx
lea ecx, [ebp - 0x14c]
cmova ecx, dword [ebp - 0x14c]
lea eax, [ebp - 0x134]
cmp dword [ebp - 0x120], 0xf
push 0x1006b0e9
cmova eax, dword [ebp - 0x134]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov ecx, dword [ebp - 0x120]
mov esi, eax
cmp ecx, 0xf
jbe 0x10009153
mov edx, dword [ebp - 0x134]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10009149
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10009c43
push ecx
push edx
call fcn.10037ca8
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x138]
mov dword [ebp - 0x124], 0
mov dword [ebp - 0x120], 0xf
mov byte [ebp - 0x134], 0
cmp ecx, 0xf
jbe 0x100091af
mov edx, dword [ebp - 0x14c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100091a5
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10009c43
push ecx
push edx
call fcn.10037ca8
add esp, 8
test esi, esi
jne 0x100092e2
mov esi, dword [edi + 0x10]
lea ecx, [ebp - 0x14c]
push 0x1a
xorps xmm0, xmm0
mov byte [ebp - 0x119], 0
push str.LeftTurnSpellbookAutostand
movups xmmword [ebp - 0x14c], xmm0
mov dword [ebp - 0x13c], 0
mov dword [ebp - 0x138], 0
call fcn.100054b0
mov dword [ebp - 4], 1
lea ecx, [ebp - 0x134]
push 4
xorps xmm0, xmm0
mov dword [ebp - 0x124], 0
push 0x1006cb04
movups xmmword [ebp - 0x134], xmm0
mov dword [ebp - 0x120], 0
call fcn.100054b0
lea eax, [ebp - 0x119]
mov byte [ebp - 4], 2
push eax
lea eax, [ebp - 0x14c]
mov ecx, esi
push eax
lea eax, [ebp - 0x134]
push eax
call fcn.1000abe0
mov byte [ebp - 4], 1
mov ecx, dword [ebp - 0x120]
cmp ecx, 0xf
jbe 0x10009286
mov edx, dword [ebp - 0x134]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1000927c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10009c48
push ecx
push edx
call fcn.10037ca8
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x138]
mov dword [ebp - 0x124], 0
mov dword [ebp - 0x120], 0xf
mov byte [ebp - 0x134], 0
cmp ecx, 0xf
jbe 0x100092e2
mov edx, dword [ebp - 0x14c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100092d8
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10009c48
push ecx
push edx
call fcn.10037ca8
add esp, 8
mov esi, dword [edi + 0x10]
lea ecx, [ebp - 0x14c]
push 0x1b
xorps xmm0, xmm0
mov dword [ebp - 0x13c], 0
push str.RightTurnSpellbookAutostand
movups xmmword [ebp - 0x14c], xmm0
mov dword [ebp - 0x138], 0
call fcn.100054b0
mov dword [ebp - 4], 3
lea ecx, [ebp - 0x134]
push 4
xorps xmm0, xmm0
mov dword [ebp - 0x124], 0
push 0x1006cb04
movups xmmword [ebp - 0x134], xmm0
mov dword [ebp - 0x120], 0
call fcn.100054b0
cmp dword [esi + 0x14], 0xf
jbe 0x10009354
mov esi, dword [esi]
cmp dword [ebp - 0x138], 0xf
lea edx, [ebp - 0x118]
push esi
push pe_nt_image_headers32
push edx
lea ecx, [ebp - 0x14c]
cmova ecx, dword [ebp - 0x14c]
lea eax, [ebp - 0x134]
cmp dword [ebp - 0x120], 0xf
push 0x1006b0e9
cmova eax, dword [ebp - 0x134]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov ecx, dword [ebp - 0x120]
mov esi, eax
cmp ecx, 0xf
jbe 0x100093d2
mov edx, dword [ebp - 0x134]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100093c8
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10009c4d
push ecx
push edx
call fcn.10037ca8
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x138]
mov dword [ebp - 0x124], 0
mov dword [ebp - 0x120], 0xf
mov byte [ebp - 0x134], 0
cmp ecx, 0xf
jbe 0x1000942e
mov edx, dword [ebp - 0x14c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10009424
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10009c4d
push ecx
push edx
call fcn.10037ca8
add esp, 8
test esi, esi
jne 0x10009561
mov esi, dword [edi + 0x10]
lea ecx, [ebp - 0x14c]
push 0x1b
xorps xmm0, xmm0
mov byte [ebp - 0x119], 0
push str.RightTurnSpellbookAutostand
movups xmmword [ebp - 0x14c], xmm0
mov dword [ebp - 0x13c], 0
mov dword [ebp - 0x138], 0
call fcn.100054b0
mov dword [ebp - 4], 4
lea ecx, [ebp - 0x134]
push 4
xorps xmm0, xmm0
mov dword [ebp - 0x124], 0
push 0x1006cb04
movups xmmword [ebp - 0x134], xmm0
mov dword [ebp - 0x120], 0
call fcn.100054b0
lea eax, [ebp - 0x119]
mov byte [ebp - 4], 5
push eax
lea eax, [ebp - 0x14c]
mov ecx, esi
push eax
lea eax, [ebp - 0x134]
push eax
call fcn.1000abe0
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x120]
cmp ecx, 0xf
jbe 0x10009505
mov edx, dword [ebp - 0x134]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100094fb
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10009c52
push ecx
push edx
call fcn.10037ca8
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x138]
mov dword [ebp - 0x124], 0
mov dword [ebp - 0x120], 0xf
mov byte [ebp - 0x134], 0
cmp ecx, 0xf
jbe 0x10009561
mov edx, dword [ebp - 0x14c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10009557
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10009c52
push ecx
push edx
call fcn.10037ca8
add esp, 8
mov esi, dword [edi + 0x10]
lea ecx, [ebp - 0x14c]
push 0x1c
xorps xmm0, xmm0
mov dword [ebp - 0x13c], 0
push str.LeftStrafeSpellbookAutostand
movups xmmword [ebp - 0x14c], xmm0
mov dword [ebp - 0x138], 0
call fcn.100054b0
mov dword [ebp - 4], 6
lea ecx, [ebp - 0x134]
push 4
xorps xmm0, xmm0
mov dword [ebp - 0x124], 0
push 0x1006cb04
movups xmmword [ebp - 0x134], xmm0
mov dword [ebp - 0x120], 0
call fcn.100054b0
cmp dword [esi + 0x14], 0xf
jbe 0x100095d3
mov esi, dword [esi]
cmp dword [ebp - 0x138], 0xf
lea edx, [ebp - 0x118]
push esi
push pe_nt_image_headers32
push edx
lea ecx, [ebp - 0x14c]
cmova ecx, dword [ebp - 0x14c]
lea eax, [ebp - 0x134]
cmp dword [ebp - 0x120], 0xf
push 0x1006b0e9
cmova eax, dword [ebp - 0x134]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov ecx, dword [ebp - 0x120]
mov esi, eax
cmp ecx, 0xf
jbe 0x10009651
mov edx, dword [ebp - 0x134]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10009647
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10009c57
push ecx
push edx
call fcn.10037ca8
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x138]
mov dword [ebp - 0x124], 0
mov dword [ebp - 0x120], 0xf
mov byte [ebp - 0x134], 0
cmp ecx, 0xf
jbe 0x100096ad
mov edx, dword [ebp - 0x14c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100096a3
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10009c57
push ecx
push edx
call fcn.10037ca8
add esp, 8
test esi, esi
jne 0x100097e0
mov esi, dword [edi + 0x10]
lea ecx, [ebp - 0x14c]
push 0x1c
xorps xmm0, xmm0
mov byte [ebp - 0x119], 1
push str.LeftStrafeSpellbookAutostand
movups xmmword [ebp - 0x14c], xmm0
mov dword [ebp - 0x13c], 0
mov dword [ebp - 0x138], 0
call fcn.100054b0
mov dword [ebp - 4], 7
lea ecx, [ebp - 0x134]
push 4
xorps xmm0, xmm0
mov dword [ebp - 0x124], 0
push 0x1006cb04
movups xmmword [ebp - 0x134], xmm0
mov dword [ebp - 0x120], 0
call fcn.100054b0
lea eax, [ebp - 0x119]
mov byte [ebp - 4], 8
push eax
lea eax, [ebp - 0x14c]
mov ecx, esi
push eax
lea eax, [ebp - 0x134]
push eax
call fcn.1000abe0
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0x120]
cmp ecx, 0xf
jbe 0x10009784
mov edx, dword [ebp - 0x134]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1000977a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10009c5c
push ecx
push edx
call fcn.10037ca8
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x138]
mov dword [ebp - 0x124], 0
mov dword [ebp - 0x120], 0xf
mov byte [ebp - 0x134], 0
cmp ecx, 0xf
jbe 0x100097e0
mov edx, dword [ebp - 0x14c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100097d6
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10009c5c
push ecx
push edx
call fcn.10037ca8
add esp, 8
mov esi, dword [edi + 0x10]
lea ecx, [ebp - 0x14c]
push 0x1d
xorps xmm0, xmm0
mov dword [ebp - 0x13c], 0
push str.RightStrafeSpellbookAutostand
movups xmmword [ebp - 0x14c], xmm0
mov dword [ebp - 0x138], 0
call fcn.100054b0
mov dword [ebp - 4], 9
lea ecx, [ebp - 0x134]
push 4
xorps xmm0, xmm0
mov dword [ebp - 0x124], 0
push 0x1006cb04
movups xmmword [ebp - 0x134], xmm0
mov dword [ebp - 0x120], 0
call fcn.100054b0
cmp dword [esi + 0x14], 0xf
jbe 0x10009852
mov esi, dword [esi]
cmp dword [ebp - 0x138], 0xf
lea edx, [ebp - 0x118]
push esi
push pe_nt_image_headers32
push edx
lea ecx, [ebp - 0x14c]
cmova ecx, dword [ebp - 0x14c]
lea eax, [ebp - 0x134]
cmp dword [ebp - 0x120], 0xf
push 0x1006b0e9
cmova eax, dword [ebp - 0x134]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov ecx, dword [ebp - 0x120]
mov esi, eax
cmp ecx, 0xf
jbe 0x100098d0
mov edx, dword [ebp - 0x134]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100098c6
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10009c61
push ecx
push edx
call fcn.10037ca8
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x138]
mov dword [ebp - 0x124], 0
mov dword [ebp - 0x120], 0xf
mov byte [ebp - 0x134], 0
cmp ecx, 0xf
jbe 0x1000992c
mov edx, dword [ebp - 0x14c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10009922
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10009c61
push ecx
push edx
call fcn.10037ca8
add esp, 8
test esi, esi
jne 0x10009a7a
mov esi, dword [edi + 0x10]
lea ecx, [ebp - 0x184]
push 0x1d
xorps xmm0, xmm0
mov byte [ebp - 0x119], 1
push str.RightStrafeSpellbookAutostand
movups xmmword [ebp - 0x184], xmm0
mov dword [ebp - 0x174], 0
mov dword [ebp - 0x170], 0
call fcn.100054b0
mov dword [ebp - 4], 0xa
lea ecx, [ebp - 0x16c]
push 4
xorps xmm0, xmm0
mov dword [ebp - 0x15c], 0
push 0x1006cb04
movups xmmword [ebp - 0x16c], xmm0
mov dword [ebp - 0x158], 0
call fcn.100054b0
lea eax, [ebp - 0x119]
mov byte [ebp - 4], 0xb
push eax
lea eax, [ebp - 0x184]
mov ecx, esi
push eax
lea eax, [ebp - 0x16c]
push eax
call fcn.1000abe0
mov byte [ebp - 4], 0xa
mov ecx, dword [ebp - 0x158]
cmp ecx, 0xf
jbe 0x10009a03
mov edx, dword [ebp - 0x16c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100099f9
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10009c66
push ecx
push edx
call fcn.10037ca8
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x170]
mov dword [ebp - 0x15c], 0
mov dword [ebp - 0x158], 0xf
mov byte [ebp - 0x16c], 0
cmp ecx, 0xf
jbe 0x10009a5f
mov edx, dword [ebp - 0x184]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10009a55
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10009c66
push ecx
push edx
call fcn.10037ca8
add esp, 8
mov dword [ebp - 0x174], 0
mov dword [ebp - 0x170], 0xf
mov byte [ebp - 0x184], 0
mov esi, dword [edi + 0x10]
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x150], esp
xorps xmm0, xmm0
push 0x1a
movups xmmword [ecx], xmm0
push str.LeftTurnSpellbookAutostand
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
call fcn.100054b0
sub esp, 0x18
mov dword [ebp - 4], 0xc
mov ecx, esp
xorps xmm0, xmm0
push 4
movups xmmword [ecx], xmm0
push 0x1006cb04
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
call fcn.100054b0
mov ecx, esi
mov dword [ebp - 4], 0xffffffff
call fcn.1000acf0
mov esi, dword [edi + 0x10]
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x154], esp
mov byte [edi], al
xorps xmm0, xmm0
push 0x1b
movups xmmword [ecx], xmm0
push str.RightTurnSpellbookAutostand
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
call fcn.100054b0
sub esp, 0x18
mov dword [ebp - 4], 0xd
mov ecx, esp
xorps xmm0, xmm0
push 4
movups xmmword [ecx], xmm0
push 0x1006cb04
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
call fcn.100054b0
mov ecx, esi
mov dword [ebp - 4], 0xffffffff
call fcn.1000acf0
mov esi, dword [edi + 0x10]
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x154], esp
mov byte [edi + 1], al
xorps xmm0, xmm0
push 0x1c
movups xmmword [ecx], xmm0
push str.LeftStrafeSpellbookAutostand
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
call fcn.100054b0
sub esp, 0x18
mov dword [ebp - 4], 0xe
mov ecx, esp
xorps xmm0, xmm0
push 4
movups xmmword [ecx], xmm0
push 0x1006cb04
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
call fcn.100054b0
mov ecx, esi
mov dword [ebp - 4], 0xffffffff
call fcn.1000acf0
mov esi, dword [edi + 0x10]
sub esp, 0x18
mov byte [edi + 2], al
mov dword [ebp - 0x154], esp
mov ecx, esp
xorps xmm0, xmm0
push 0x1d
push str.RightStrafeSpellbookAutostand
movups xmmword [ecx], xmm0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
call fcn.100054b0
sub esp, 0x18
mov dword [ebp - 4], 0xf
mov ecx, esp
xorps xmm0, xmm0
push 4
movups xmmword [ecx], xmm0
push 0x1006cb04
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
call fcn.100054b0
mov ecx, esi
mov dword [ebp - 4], 0xffffffff
call fcn.1000acf0
mov byte [edi + 3], al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.10037c60
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
call fcn.1003ef14
call fcn.1003ef14
call fcn.1003ef14
call fcn.1003ef14
call fcn.1003ef14
call fcn.1003ef14
call fcn.1003ef14
call fcn.1003ef14
int3