Function at 0x100ba520
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100ecbf9
mov eax, dword fs:[0]
push eax
sub esp, 0x30
mov eax, dword [0x1011100c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov ebx, dword [ebp + 0x14]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0x30], eax
mov dword [ebp - 4], 0
mov ecx, dword [0x10115090]
push dword [ebx + 0x30]
mov eax, dword [ecx]
call dword [eax + 0xc]
mov edi, dword [0x10115020]
mov esi, eax
test edi, edi
je 0x100baf0a
mov ecx, dword fs:[0x2c]
mov edx, dword [0x10114f54]
mov edx, dword [ecx + edx*4]
mov ecx, dword [0x10114ff0]
cmp ecx, dword [edx + 4]
jle 0x100ba5e8
push 0x10114ff0
call fcn.100e09a6
add esp, 4
cmp dword [0x10114ff0], 0xffffffff
jne 0x100ba5e8
push str.m_lifeState
push str.CBasePlayer
mov byte [ebp - 4], 1
call fcn.100dfaa0
push 0x10114ff0
mov dword [0x10114fb0], eax
mov byte [ebp - 4], 0
call fcn.100e095c
add esp, 4
mov eax, dword [0x10114fb0]
cmp byte [eax + edi], 0
jne 0x100baf0a
mov ecx, dword [0x10115178]
mov eax, dword [ecx]
mov eax, dword [eax + 8]
call eax
test al, al
jne 0x100baf0a
mov eax, dword [0x1011681c]
mov eax, dword [eax + 0x9c]
cmp byte [eax], 0
jne 0x100baf0a
test esi, esi
je 0x100baa85
add esi, 8
je 0x100ba649
mov eax, dword [esi]
mov ecx, esi
mov eax, dword [eax + 0x20]
call eax
test al, al
jne 0x100baf0a
mov eax, dword [esi]
mov ecx, esi
mov eax, dword [eax + 8]
call eax
jmp 0x100ba64b
xor eax, eax
cmp dword [eax + 0x14], 0x140
jne 0x100baf0a
mov ecx, dword [0x1011684c]
mov eax, dword [ecx + 0x10]
cmp byte [eax + 0x70], 0
je 0x100baf0a
mov eax, dword [eax + 0x74]
xor esi, esi
vmovss xmm1, dword [0x100ffe4c]
sub eax, 1
je 0x100ba69f
sub eax, 1
je 0x100ba695
sub eax, 1
jne 0x100ba722
mov eax, dword [0x1011687c]
mov esi, dword [eax + 0x6c]
jmp 0x100ba6a7
mov eax, dword [0x1011687c]
mov esi, dword [eax + 0x68]
jmp 0x100ba6a7
mov eax, dword [0x1011687c]
mov esi, dword [eax + 0x64]
test esi, esi
je 0x100ba722
mov eax, dword [ecx]
mov ecx, dword [0x1011508c]
vxorps xmm0, xmm0, xmm0
mov edx, dword [eax + 0x20c]
movzx eax, dl
vcvtsi2ss xmm0, xmm0, eax
vdivss xmm0, xmm0, xmm1
vmovss dword [ebp - 0x1c], xmm0
mov eax, edx
shr edx, 0x10
shr eax, 8
vxorps xmm0, xmm0, xmm0
movzx eax, al
vcvtsi2ss xmm0, xmm0, eax
vdivss xmm0, xmm0, xmm1
vmovss dword [ebp - 0x18], xmm0
movzx eax, dl
lea edx, [ebp - 0x1c]
vxorps xmm0, xmm0, xmm0
vcvtsi2ss xmm0, xmm0, eax
mov eax, dword [ecx]
vdivss xmm0, xmm0, xmm1
vmovss dword [ebp - 0x14], xmm0
push edx
mov eax, dword [eax + 0x18]
call eax
mov eax, dword [0x1011684c]
mov ecx, dword [0x1011508c]
mov eax, dword [eax + 0x10]
mov edx, dword [ecx]
vmovss xmm0, dword [eax + 0x78]
mov eax, dword [edx + 0x10]
jmp 0x100ba75d
mov ecx, dword [0x1011508c]
lea edx, [ebp - 0x1c]
vmovss xmm0, dword [0x100ffc90]
vmovss dword [ebp - 0x1c], xmm0
vmovss dword [ebp - 0x18], xmm0
mov eax, dword [ecx]
vmovss dword [ebp - 0x14], xmm0
push edx
mov eax, dword [eax + 0x18]
call eax
mov ecx, dword [0x1011508c]
vmovss xmm0, dword [0x100ffc90]
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
push ecx
vmovss dword [esp], xmm0
call eax
mov eax, dword [0x1011684c]
mov eax, dword [eax + 0x10]
cmp byte [eax + 0x7c], 0
jne 0x100baeb6
mov ecx, dword [0x10115088]
push 0
push esi
mov eax, dword [ecx]
mov eax, dword [eax + 4]
call eax
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp + 0x40]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x28], eax
test ecx, ecx
jne 0x100ba7a6
call dword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xbad_function_call_void_]
mov edi, dword [ebp - 0x2c]
lea edx, [ebp - 0x20]
mov eax, dword [ecx]
push edx
push ebx
push edi
lea edx, [ebp - 0x24]
push edx
lea edx, [ebp - 0x28]
push edx
call dword [eax + 8]
mov eax, dword [0x1011684c]
mov eax, dword [eax + 0x10]
cmp byte [eax + 0x7e], 0
je 0x100baeb6
mov eax, dword [eax + 0x80]
xor esi, esi
cmp eax, 3
ja case.default.0x100bad7c
jmp dword [eax*4 + 0x100baf40]
mov eax, dword [0x1011687c]
push 0
push 0
push str._envmaptint
mov ecx, dword [eax + 0x70]
mov eax, dword [ecx]
call dword [eax + 0x2c]
mov edi, eax
test edi, edi
je 0x100ba866
mov ecx, dword [0x1011684c]
sub esp, 0xc
vmovss xmm1, dword [0x100ffe4c]
mov esi, dword [edi]
vxorps xmm0, xmm0, xmm0
mov edx, dword [ecx]
movzx ecx, byte [edx + 0x212]
movzx eax, byte [edx + 0x211]
vcvtsi2ss xmm0, xmm0, ecx
vdivss xmm0, xmm0, xmm1
vmovss dword [esp + 8], xmm0
vxorps xmm0, xmm0, xmm0
vcvtsi2ss xmm0, xmm0, eax
movzx eax, byte [edx + 0x210]
mov ecx, edi
vdivss xmm0, xmm0, xmm1
vmovss dword [esp + 4], xmm0
vxorps xmm0, xmm0, xmm0
vcvtsi2ss xmm0, xmm0, eax
vdivss xmm0, xmm0, xmm1
vmovss dword [esp], xmm0
call dword [esi + 0x28]
mov eax, dword [0x1011687c]
mov edi, dword [ebp - 0x2c]
mov esi, dword [eax + 0x70]
jmp case.default.0x100bad7c
mov eax, dword [0x1011687c]
push 0
push 0
push str._sheenmaptint
mov ecx, dword [eax + 0x74]
mov eax, dword [ecx]
call dword [eax + 0x2c]
mov edi, eax
test edi, edi
je 0x100ba8f6
mov ecx, dword [0x1011684c]
sub esp, 0xc
vmovss xmm1, dword [0x100ffe4c]
mov esi, dword [edi]
vxorps xmm0, xmm0, xmm0
mov edx, dword [ecx]
movzx ecx, byte [edx + 0x212]
movzx eax, byte [edx + 0x211]
vcvtsi2ss xmm0, xmm0, ecx
vdivss xmm0, xmm0, xmm1
vmovss dword [esp + 8], xmm0
vxorps xmm0, xmm0, xmm0
vcvtsi2ss xmm0, xmm0, eax
movzx eax, byte [edx + 0x210]
mov ecx, edi
vdivss xmm0, xmm0, xmm1
vmovss dword [esp + 4], xmm0
vxorps xmm0, xmm0, xmm0
vcvtsi2ss xmm0, xmm0, eax
vdivss xmm0, xmm0, xmm1
vmovss dword [esp], xmm0
call dword [esi + 0x28]
mov eax, dword [0x1011687c]
mov edi, dword [ebp - 0x2c]
mov esi, dword [eax + 0x74]
jmp case.default.0x100bad7c
mov eax, dword [0x1011687c]
push 0
push 0
push str._envmaptint
mov ecx, dword [eax + 0x78]
mov eax, dword [ecx]
call dword [eax + 0x2c]
mov edi, eax
test edi, edi
je 0x100ba986
mov ecx, dword [0x1011684c]
sub esp, 0xc
vmovss xmm1, dword [0x100ffe4c]
mov esi, dword [edi]
vxorps xmm0, xmm0, xmm0
mov edx, dword [ecx]
movzx ecx, byte [edx + 0x212]
movzx eax, byte [edx + 0x211]
vcvtsi2ss xmm0, xmm0, ecx
vdivss xmm0, xmm0, xmm1
vmovss dword [esp + 8], xmm0
vxorps xmm0, xmm0, xmm0
vcvtsi2ss xmm0, xmm0, eax
movzx eax, byte [edx + 0x210]
mov ecx, edi
vdivss xmm0, xmm0, xmm1
vmovss dword [esp + 4], xmm0
vxorps xmm0, xmm0, xmm0
vcvtsi2ss xmm0, xmm0, eax
vdivss xmm0, xmm0, xmm1
vmovss dword [esp], xmm0
call dword [esi + 0x28]
mov eax, dword [0x1011687c]
mov edi, dword [ebp - 0x2c]
mov esi, dword [eax + 0x78]
jmp case.default.0x100bad7c
mov eax, dword [0x1011684c]
vmovss xmm1, dword [0x100ffe4c]
mov ecx, dword [0x1011508c]
vxorps xmm0, xmm0, xmm0
mov eax, dword [eax]
mov edx, dword [eax + 0x210]
movzx eax, dl
vcvtsi2ss xmm0, xmm0, eax
vdivss xmm0, xmm0, xmm1
vmovss dword [ebp - 0x1c], xmm0
mov eax, edx
shr edx, 0x10
shr eax, 8
vxorps xmm0, xmm0, xmm0
movzx eax, al
vcvtsi2ss xmm0, xmm0, eax
vdivss xmm0, xmm0, xmm1
vmovss dword [ebp - 0x18], xmm0
movzx eax, dl
lea edx, [ebp - 0x1c]
vxorps xmm0, xmm0, xmm0
vcvtsi2ss xmm0, xmm0, eax
mov eax, dword [ecx]
vdivss xmm0, xmm0, xmm1
vmovss dword [ebp - 0x14], xmm0
push edx
mov eax, dword [eax + 0x18]
call eax
mov eax, dword [0x1011687c]
mov esi, dword [eax + 0x7c]
mov eax, dword [0x1011684c]
mov ecx, esi
mov edx, dword [esi]
mov eax, dword [eax + 0x10]
movzx eax, byte [eax + 0x88]
push eax
push 0x10000000
call dword [edx + 0x74]
mov eax, dword [esi]
mov ecx, esi
push 1
push 0x80
call dword [eax + 0x74]
mov ecx, dword [0x1011508c]
mov eax, dword [0x1011684c]
push ecx
mov edx, dword [ecx]
mov eax, dword [eax + 0x10]
vmovss xmm0, dword [eax + 0x84]
mov eax, dword [edx + 0x10]
vmovss dword [esp], xmm0
call eax
mov ecx, dword [0x10115088]
push 0
push esi
mov eax, dword [ecx]
mov eax, dword [eax + 4]
call eax
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp + 0x40]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x20], eax
test ecx, ecx
jne 0x100baea3
call dword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xbad_function_call_void_]
mov edx, dword [ebx + 0x1c]
test edx, edx
je 0x100baf0a
mov eax, dword [0x1011684c]
mov eax, dword [eax + 0x10]
cmp byte [eax + 0x70], 0
je 0x100baf0a
mov ecx, dword [0x10114ff4]
push edx
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
mov edi, eax
mov esi, edi
lea eax, [esi + 1]
mov cl, byte [esi]
inc esi
test cl, cl
jne 0x100baab7
push 6
sub esi, eax
push str.weapon
push ecx
mov edx, esi
mov ecx, edi
call fcn.1006a9d0
add esp, 0xc
cmp eax, 0xffffffff
je 0x100baeb6
push 5
push str.arrow
push ecx
mov edx, esi
mov ecx, edi
call fcn.1006a9d0
add esp, 0xc
cmp eax, 0xffffffff
jne 0x100baeb6
push 9
push str.w_syringe
push ecx
mov edx, esi
mov ecx, edi
call fcn.1006a9d0
add esp, 0xc
cmp eax, 0xffffffff
jne 0x100baeb6
push 4
push str.nail
push ecx
mov edx, esi
mov ecx, edi
call fcn.1006a9d0
add esp, 0xc
cmp eax, 0xffffffff
jne 0x100baeb6
push 5
push str.shell
push ecx
mov edx, esi
mov ecx, edi
call fcn.1006a9d0
add esp, 0xc
cmp eax, 0xffffffff
jne 0x100baeb6
push 9
push str.parachute
push ecx
mov edx, esi
mov ecx, edi
call fcn.1006a9d0
add esp, 0xc
cmp eax, 0xffffffff
jne 0x100baeb6
push 0xa
push str.buffbanner
push ecx
mov edx, esi
mov ecx, edi
call fcn.1006a9d0
add esp, 0xc
cmp eax, 0xffffffff
jne 0x100baeb6
push 0x10
push str.shogun_warbanner
push ecx
mov edx, esi
mov ecx, edi
call fcn.1006a9d0
add esp, 0xc
cmp eax, 0xffffffff
jne 0x100baeb6
push 5
push str.targe
push ecx
mov edx, esi
mov ecx, edi
call fcn.1006a9d0
add esp, 0xc
cmp eax, 0xffffffff
jne 0x100baeb6
push 6
push str.shield
push ecx
mov edx, esi
mov ecx, edi
call fcn.1006a9d0
add esp, 0xc
cmp eax, 0xffffffff
jne 0x100baeb6
push 0xb
push str.repair_claw
push ecx
mov edx, esi
mov ecx, edi
call fcn.1006a9d0
add esp, 0xc
cmp eax, 0xffffffff
jne 0x100baeb6
mov ecx, dword [0x1011684c]
xor esi, esi
vmovss xmm1, dword [0x100ffe4c]
mov eax, dword [ecx + 0x10]
mov eax, dword [eax + 0x74]
sub eax, 1
je 0x100bac3c
sub eax, 1
je 0x100bac32
sub eax, 1
jne 0x100bacbf
mov eax, dword [0x1011687c]
mov esi, dword [eax + 0x6c]
jmp 0x100bac44
mov eax, dword [0x1011687c]
mov esi, dword [eax + 0x68]
jmp 0x100bac44
mov eax, dword [0x1011687c]
mov esi, dword [eax + 0x64]
test esi, esi
je 0x100bacbf
mov eax, dword [ecx]
mov ecx, dword [0x1011508c]
vxorps xmm0, xmm0, xmm0
mov edx, dword [eax + 0x20c]
movzx eax, dl
vcvtsi2ss xmm0, xmm0, eax
vdivss xmm0, xmm0, xmm1
vmovss dword [ebp - 0x1c], xmm0
mov eax, edx
shr edx, 0x10
shr eax, 8
vxorps xmm0, xmm0, xmm0
movzx eax, al
vcvtsi2ss xmm0, xmm0, eax
vdivss xmm0, xmm0, xmm1
vmovss dword [ebp - 0x18], xmm0
movzx eax, dl
lea edx, [ebp - 0x1c]
vxorps xmm0, xmm0, xmm0
vcvtsi2ss xmm0, xmm0, eax
mov eax, dword [ecx]
vdivss xmm0, xmm0, xmm1
vmovss dword [ebp - 0x14], xmm0
push edx
mov eax, dword [eax + 0x18]
call eax
mov eax, dword [0x1011684c]
mov ecx, dword [0x1011508c]
mov eax, dword [eax + 0x10]
mov edx, dword [ecx]
vmovss xmm0, dword [eax + 0x78]
mov eax, dword [edx + 0x10]
jmp 0x100bacfa
mov ecx, dword [0x1011508c]
lea edx, [ebp - 0x1c]
vmovss xmm0, dword [0x100ffc90]
vmovss dword [ebp - 0x1c], xmm0
vmovss dword [ebp - 0x18], xmm0
mov eax, dword [ecx]
vmovss dword [ebp - 0x14], xmm0
push edx
mov eax, dword [eax + 0x18]
call eax
mov ecx, dword [0x1011508c]
vmovss xmm0, dword [0x100ffc90]
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
push ecx
vmovss dword [esp], xmm0
call eax
mov eax, dword [0x1011684c]
mov eax, dword [eax + 0x10]
cmp byte [eax + 0x7d], 0
jne 0x100baeb6
mov ecx, dword [0x10115088]
push 0
push esi
mov eax, dword [ecx]
mov eax, dword [eax + 4]
call eax
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp + 0x40]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x20], eax
test ecx, ecx
jne 0x100bad43
call dword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xbad_function_call_void_]
mov edi, dword [ebp - 0x2c]
lea edx, [ebp - 0x28]
mov eax, dword [ecx]
push edx
push ebx
push edi
lea edx, [ebp - 0x24]
push edx
lea edx, [ebp - 0x20]
push edx
call dword [eax + 8]
mov eax, dword [0x1011684c]
mov eax, dword [eax + 0x10]
cmp byte [eax + 0x7e], 0
je 0x100baeb6
mov eax, dword [eax + 0x80]
xor esi, esi
cmp eax, 3
ja case.default.0x100bad7c
jmp dword [eax*4 + 0x100baf50]
mov eax, dword [0x1011687c]
push 0
push 0
push str._sheenmaptint
mov ecx, dword [eax + 0x74]
mov eax, dword [ecx]
call dword [eax + 0x2c]
mov edi, eax
test edi, edi
je 0x100bae03
mov ecx, dword [0x1011684c]
sub esp, 0xc
vmovss xmm1, dword [0x100ffe4c]
mov esi, dword [edi]
vxorps xmm0, xmm0, xmm0
mov edx, dword [ecx]
movzx ecx, byte [edx + 0x212]
movzx eax, byte [edx + 0x211]
vcvtsi2ss xmm0, xmm0, ecx
vdivss xmm0, xmm0, xmm1
vmovss dword [esp + 8], xmm0
vxorps xmm0, xmm0, xmm0
vcvtsi2ss xmm0, xmm0, eax
movzx eax, byte [edx + 0x210]
mov ecx, edi
vdivss xmm0, xmm0, xmm1
vmovss dword [esp + 4], xmm0
vxorps xmm0, xmm0, xmm0
vcvtsi2ss xmm0, xmm0, eax
vdivss xmm0, xmm0, xmm1
vmovss dword [esp], xmm0
call dword [esi + 0x28]
mov eax, dword [0x1011687c]
mov edi, dword [ebp - 0x2c]
mov esi, dword [eax + 0x74]
jmp case.default.0x100bad7c
mov eax, dword [0x1011687c]
push 0
push 0
push str._envmaptint
mov ecx, dword [eax + 0x78]
mov eax, dword [ecx]
call dword [eax + 0x2c]
mov edi, eax
test edi, edi
je 0x100bae93
mov ecx, dword [0x1011684c]
sub esp, 0xc
vmovss xmm1, dword [0x100ffe4c]
mov esi, dword [edi]
vxorps xmm0, xmm0, xmm0
mov edx, dword [ecx]
movzx ecx, byte [edx + 0x212]
movzx eax, byte [edx + 0x211]
vcvtsi2ss xmm0, xmm0, ecx
vdivss xmm0, xmm0, xmm1
vmovss dword [esp + 8], xmm0
vxorps xmm0, xmm0, xmm0
vcvtsi2ss xmm0, xmm0, eax
movzx eax, byte [edx + 0x210]
mov ecx, edi
vdivss xmm0, xmm0, xmm1
vmovss dword [esp + 4], xmm0
vxorps xmm0, xmm0, xmm0
vcvtsi2ss xmm0, xmm0, eax
vdivss xmm0, xmm0, xmm1
vmovss dword [esp], xmm0
call dword [esi + 0x28]
mov eax, dword [0x1011687c]
mov edi, dword [ebp - 0x2c]
mov esi, dword [eax + 0x78]
jmp case.default.0x100bad7c
mov eax, dword [ecx]
lea edx, [ebp - 0x28]
push edx
push ebx
push edi
lea edx, [ebp - 0x24]
push edx
lea edx, [ebp - 0x20]
push edx
call dword [eax + 8]
mov ecx, dword [0x1011508c]
vmovss xmm0, dword [0x100ffc90]
push ecx
vmovss dword [esp], xmm0
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
mov ecx, dword [0x1011508c]
lea edx, [ebp - 0x1c]
vmovss xmm0, dword [0x100ffc90]
vmovss dword [ebp - 0x1c], xmm0
vmovss dword [ebp - 0x18], xmm0
mov eax, dword [ecx]
vmovss dword [ebp - 0x14], xmm0
push edx
mov eax, dword [eax + 0x18]
call eax
mov ecx, dword [0x10115088]
push 0
push 0
mov eax, dword [ecx]
mov eax, dword [eax + 4]
call eax
mov ecx, dword [ebp + 0x40]
test ecx, ecx
je 0x100baf22
mov edx, dword [ecx]
lea eax, [ebp + 0x1c]
cmp ecx, eax
setne al
movzx eax, al
push eax
call dword [edx + 0x10]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.100e03a1
mov esp, ebp
pop ebp
ret 0x3c