Function at 0x568f60
Capabilities:
Encrypt data using chaskey

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x54
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
mov esi, ecx
push ebx
mov dword [esp + 0x10], esi
call fcn.004f5d90
test eax, eax
je 0x568ff1
mov eax, dword [ebx + 4]
mov ecx, dword [ebx + 0x108]
cmp eax, ecx
jl 0x568fb8
mov edi, eax
sub edi, ecx
add edi, str.BasePosition
jmp 0x568fa0
mov cl, byte [edi]
cmp cl, byte [eax + ebx + 8]
jne 0x56a1ec
mov ecx, dword [ebx + 0x108]
dec eax
dec edi
cmp eax, ecx
jge 0x568fa0
cmp dword [ebx], 0
jne 0x56a1ec
mov edx, dword [ebx + 0x158]
mov eax, dword [edx]
add esi, 0xbb0
mov dword [esi], eax
mov ecx, dword [edx + 4]
mov dword [esi + 4], ecx
mov eax, dword [edx + 8]
mov dword [esi + 8], eax
mov ecx, dword [edx + 0xc]
mov dword [esi + 0xc], ecx
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edx, dword [esi + 0x4d0]
lea ecx, [esi + 0x4d0]
push ebx
call dword [edx + 8]
test eax, eax
jne 0x56a897
mov ecx, dword [esi + 0x46c]
test ecx, ecx
je 0x569021
mov eax, dword [ecx]
push ebx
call dword [eax + 8]
test eax, eax
jne 0x56a897
mov eax, dword [esi + 0x46c]
test eax, eax
je 0x569102
mov edx, str.RenderInstAnim
mov edi, ebx
call fcn.00502c40
test eax, eax
je 0x569093
cmp dword [ebx], 0
je 0x56906d
mov eax, dword [esp + 0xc]
add eax, 0x4f8
call fcn.0042eb50
push ebx
mov esi, 0x80
mov edx, eax
call fcn.00502b40
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov eax, dword [ebx + 0x158]
cmp byte [eax], 0
je 0x56a1ec
mov esi, dword [esp + 0xc]
call fcn.00568ea0
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov eax, dword [esi + 0x46c]
test eax, eax
je 0x569102
mov edx, str.RenderInstWeaponless_Anim
mov edi, ebx
call fcn.00502c40
test eax, eax
je 0x569102
cmp dword [ebx], 0
je 0x5690d5
mov edx, dword [esp + 0xc]
add edx, 0x1054
push ebx
mov esi, 0x80
call fcn.00502b40
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ebx, dword [ebx + 0x158]
cmp byte [ebx], 0
je 0x56a1ec
push ebx
add esi, 0x1054
push esi
call fcn.00625c90
add esp, 8
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edx, str.Character
mov eax, ebx
call fcn.00502c90
test eax, eax
je 0x56ad10
mov edx, str.CharacterNPCName
mov edi, ebx
call fcn.00502c40
test eax, eax
je 0x56916d
cmp dword [ebx], 0
je 0x56914d
mov ecx, dword [esi + 0xe90]
shl ecx, 4
mov edx, dword [ecx + 0x759abc]
call fcn.00502b90
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edx, dword [ebx + 0x158]
push edx
call fcn.00568810
mov dword [esi + 0xe90], eax
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edx, str.CharacterWeapon
mov edi, ebx
call fcn.00502c40
test eax, eax
je 0x5691c8
cmp dword [ebx], 0
je 0x5691a5
mov esi, dword [esi + 0xe98]
lea eax, [esi + esi*2]
mov edx, dword [eax*8 + 0x75833c]
call fcn.00502b90
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [ebx + 0x158]
push ecx
call fcn.004f3f10
mov dword [esi + 0xe98], eax
add esp, 4
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edx, str.CharacterGrenade
mov edi, ebx
call fcn.00502c40
test eax, eax
je 0x569223
cmp dword [ebx], 0
je 0x569200
mov esi, dword [esi + 0xe9c]
lea edx, [esi + esi*2]
mov edx, dword [edx*8 + 0x75833c]
call fcn.00502b90
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov eax, dword [ebx + 0x158]
push eax
call fcn.004f3f10
mov dword [esi + 0xe9c], eax
add esp, 4
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edx, str.CharacterAudio_Package
mov edi, ebx
call fcn.00502c40
test eax, eax
je 0x5692d4
cmp dword [ebx], 0
je 0x56924a
mov eax, dword [esp + 0xc]
add eax, 0x42c
jmp 0x56904d
mov ebx, dword [ebx + 0x158]
cmp byte [ebx], 0
je 0x56a1ec
push ebx
lea ecx, [esp + 0x40]
call fcn.00626ac0
mov esi, 0x70c7fc
call fcn.00627210
lea ecx, [esp + 0x3c]
mov esi, eax
call fcn.006176f0
test esi, esi
je 0x56929e
mov ecx, dword [esp + 0xc]
push 0x70a557
add ecx, 0x42c
call fcn.00401320
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov esi, dword [esp + 0xc]
add esi, 0x42c
push ebx
mov ecx, esi
call fcn.00401320
mov eax, esi
call fcn.0042eb70
test eax, eax
jne 0x56a1ec
mov edx, esi
call fcn.0042fa70
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edx, str.CharacterDialog_Prefix
mov edi, ebx
call fcn.00502c40
test eax, eax
je 0x56936a
cmp dword [ebx], 0
je 0x569346
mov esi, dword [esi + 0x118c]
test esi, esi
jl 0x569328
mov ecx, dword [0x91a2c0]
mov edi, dword [ecx + esi*8]
add edi, dword [0x91a2d4]
push edi
call fcn.00625c70
add esp, 4
mov esi, eax
inc esi
push ebx
mov edx, edi
call fcn.00502b40
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push ebx
mov esi, 0x20
mov edx, str._NONE_
call fcn.00502b40
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov eax, dword [ebx + 0x158]
mov ecx, 0x91a2c0
call fcn.00504000
mov dword [esi + 0x118c], eax
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edx, str.CharacterOverride_Dialog_Actor
mov edi, ebx
call fcn.00502c40
test eax, eax
je 0x569420
cmp dword [ebx], 0
je 0x5693d8
mov edx, dword [esp + 0xc]
mov esi, dword [edx + 0xe80]
mov edx, 0x93cf44
call fcn.00592f30
test eax, eax
je 0x5693be
mov edi, esi
mov edx, 0x93cf44
call fcn.00527ce0
mov edx, eax
mov edi, ebx
call fcn.00502b90
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edx, 0x7108a8
mov edi, ebx
call fcn.00502b90
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
lea eax, [esp + 0x10]
push eax
mov eax, dword [ebx + 0x158]
mov esi, 0x93cf44
call fcn.0056e6e0
test eax, eax
je 0x56a1ec
mov eax, dword [esp + 0x10]
cmp eax, 4
mov ecx, dword [esp + 0xc]
mov dword [ecx + 0xe80], eax
je 0x56a1ec
mov dword [ecx + 0x434], eax
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edx, str.CharacterLogical_Name
mov edi, ebx
call fcn.00502c40
test eax, eax
je 0x56946d
cmp dword [ebx], 0
je 0x569440
mov esi, dword [esi + 0x1190]
jmp 0x5692f3
mov eax, dword [ebx + 0x158]
mov ecx, 0x91a2c0
call fcn.00504000
mov esi, dword [esp + 0xc]
mov dword [esi + 0x1190], eax
call fcn.00557780
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edx, str.CharacterHealth
mov edi, ebx
call fcn.00502c40
test eax, eax
je 0x569513
cmp dword [ebx], 0
je 0x5694a2
mov eax, dword [esi + 0xb4]
mov edx, dword [ebx + 0x158]
mov dword [edx], eax
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [ebx + 0x158]
movss xmm0, dword [ecx]
movss xmm1, dword [0x738a74]
comiss xmm0, xmm1
movss xmm2, dword [0x738ac8]
ja 0x5694c6
movaps xmm0, xmm1
jmp 0x5694ce
comiss xmm2, xmm0
ja 0x5694ce
movaps xmm0, xmm2
movss dword [ebx + 0x168], xmm1
movss dword [ebx + 0x16c], xmm2
movss dword [esi + 0xb4], xmm0
movss dword [esi + 0xb8], xmm0
xorps xmm0, xmm0
movss dword [esi + 0xbc], xmm0
mov edx, dword [esi + 0xb4]
mov dword [esi + 0xc0], edx
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edx, str.CharacterStart_Active
mov edi, ebx
call fcn.00502c40
test eax, eax
je 0x56956a
cmp dword [ebx], 0
mov eax, 1
je 0x56954b
mov edx, dword [esi + 0x10b0]
xor ecx, ecx
cmp edx, eax
mov edx, dword [ebx + 0x158]
setne cl
mov dword [edx], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [ebx + 0x158]
mov edi, dword [ecx]
xor edx, edx
test edi, edi
setne dl
inc edx
mov dword [esi + 0x10b0], edx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edx, str.CharacterIgnore_Pain
mov edi, ebx
call fcn.00502c40
test eax, eax
jne 0x56acbb
mov edx, str.CharacterFlagsIgnore_Pain
call fcn.00502c40
test eax, eax
jne 0x56acbb
mov edx, str.CharacterIgnore_Flinches
call fcn.00502c40
test eax, eax
jne 0x56ac66
mov edx, str.CharacterFlagsIgnore_Flinches
call fcn.00502c40
test eax, eax
jne 0x56ac66
mov edx, str.CharacterPass_On_Guid_To_Dead_Body
call fcn.00502c40
test eax, eax
jne 0x56ac29
mov edx, str.CharacterFlagsPass_On_Guid_To_Dead_Body
call fcn.00502c40
test eax, eax
jne 0x56ac29
mov edx, str.CharacterCan_Use_Alarms
call fcn.00502c40
test eax, eax
jne 0x56abd4
mov edx, str.CharacterFlagsCan_Use_Alarms
call fcn.00502c40
test eax, eax
jne 0x56abd4
mov edx, str.CharacterCan_Cloak
call fcn.00502c40
test eax, eax
jne 0x56ab7d
mov edx, str.CharacterFlagsCan_Cloak
call fcn.00502c40
test eax, eax
jne 0x56ab7d
mov edx, str.CharacterBodies_Fade
call fcn.00502c40
test eax, eax
jne 0x56ab28
mov edx, str.CharacterFlagsBodies_Fade
call fcn.00502c40
test eax, eax
jne 0x56ab28
mov edx, str.CharacterAutoRagdoll
call fcn.00502c40
test eax, eax
jne 0x56aad0
mov edx, str.CharacterFlagsAutoRagdoll
call fcn.00502c40
test eax, eax
jne 0x56aad0
mov edx, str.CharacterForce_Weapon_Fire
call fcn.00502c40
test eax, eax
jne 0x56aa7a
mov edx, str.CharacterFlagsForce_Weapon_Fire
call fcn.00502c40
test eax, eax
jne 0x56aa7a
mov edx, str.CharacterMust_Cloak
call fcn.00502c40
test eax, eax
jne 0x56aa15
mov edx, str.CharacterFlagsMust_Cloak
call fcn.00502c40
test eax, eax
jne 0x56aa15
mov edx, str.CharacterCombat_Ready
call fcn.00502c40
test eax, eax
jne 0x56a9bd
mov edx, str.CharacterFlagsCombat_Ready
call fcn.00502c40
test eax, eax
jne 0x56a9bd
mov edx, str.CharacterNever_Combat_Ready
call fcn.00502c40
test eax, eax
jne 0x56a94f
mov edx, str.CharacterFlagsNever_Combat_Ready
call fcn.00502c40
test eax, eax
jne 0x56a94f
mov edx, str.CharacterRoot_to_position_and_idle
call fcn.00502c40
test eax, eax
jne 0x56a8fa
mov edx, str.CharacterFlagsRoot_to_position_and_idle
call fcn.00502c40
test eax, eax
jne 0x56a8fa
mov edx, str.CharacterNext_Shot_Must_Hit
call fcn.00502c40
test eax, eax
jne 0x56a8a5
mov edx, str.CharacterFlagsNext_Shot_Must_Hit
call fcn.00502c40
test eax, eax
jne 0x56a8a5
mov edx, str.CharacterFlagsReload_Now
call fcn.00502c40
test eax, eax
je 0x569791
cmp dword [ebx], 0
je 0x56976d
mov eax, dword [ebx + 0x158]
mov dword [eax], 0
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [ebx + 0x158]
cmp dword [ecx], 0
je 0x56a1ec
mov eax, esi
call fcn.00555de0
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edx, str.CharacterFlagsNever_Play_Reload_Anim
mov edi, ebx
call fcn.00502c40
test eax, eax
je 0x5697f9
cmp dword [ebx], 0
je 0x5697c8
mov edx, dword [esi + 0xca8]
mov eax, dword [ebx + 0x158]
shr edx, 0x12
and edx, 1
mov dword [eax], edx
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [ebx + 0x158]
mov edx, dword [ecx]
mov edi, dword [esi + 0xca8]
shl edx, 0x12
xor edx, edi
and edx, 0x40000
mov eax, edi
xor eax, edx
mov dword [esi + 0xca8], eax
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edx, str.CharacterFlagsDumb_and_Fast
mov edi, ebx
call fcn.00502c40
test eax, eax
je 0x569860
cmp dword [ebx], 0
je 0x569830
mov eax, dword [esi + 0x524]
mov ecx, dword [ebx + 0x158]
shr eax, 8
and eax, 1
mov dword [ecx], eax
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edx, dword [ebx + 0x158]
mov eax, dword [edx]
mov edi, dword [esi + 0x524]
shl eax, 8
xor eax, edi
and eax, 0x100
mov ecx, edi
xor ecx, eax
mov dword [esi + 0x524], ecx
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edx, str.CharacterFlagsRun_Logic
mov edi, ebx
call fcn.00502c40
test eax, eax
je 0x5698c8
cmp dword [ebx], 0
je 0x569897
mov ecx, dword [esi + 0x11a4]
mov edx, dword [ebx + 0x158]
shr ecx, 9
and ecx, 1
mov dword [edx], ecx
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov eax, dword [ebx + 0x158]
mov ecx, dword [eax]
mov edi, dword [esi + 0x11a4]
shl ecx, 9
xor ecx, edi
and ecx, 0x200
mov eax, edi
xor eax, ecx
mov dword [esi + 0x11a4], eax
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edx, str.CharacterFlagsRender
mov edi, ebx
call fcn.00502c40
test eax, eax
je 0x569930
cmp dword [ebx], 0
je 0x5698ff
mov edx, dword [esi + 0x11a4]
mov eax, dword [ebx + 0x158]
shr edx, 0xa
and edx, 1
mov dword [eax], edx
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [ebx + 0x158]
mov edx, dword [ecx]
mov edi, dword [esi + 0x11a4]
shl edx, 0xa
xor edx, edi
and edx, 0x400
mov eax, edi
xor eax, edx
mov dword [esi + 0x11a4], eax
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edx, str.CharacterFlagsIs_Alert
mov edi, ebx
call fcn.00502c40
test eax, eax
je 0x56996d
cmp dword [ebx], 0
je 0x56a1ec
mov ecx, dword [esi + 0xe84]
xor eax, eax
cmp ecx, 2
mov ecx, dword [ebx + 0x158]
setge al
mov dword [ecx], eax
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edx, str.CharacterFlagsIs_Attacking
mov edi, ebx
call fcn.00502c40
test eax, eax
je 0x5699aa
cmp dword [ebx], 0
je 0x56a1ec
mov eax, dword [esi + 0xe84]
xor edx, edx
cmp eax, 4
mov eax, dword [ebx + 0x158]
setge dl
mov dword [eax], edx
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edx, str.CharacterFlagsCan_Always_Backpeddle
mov edi, ebx
call fcn.00502c40
test eax, eax
je 0x569a12
cmp dword [ebx], 0
je 0x5699e1
mov ecx, dword [esi + 0xca8]
mov edx, dword [ebx + 0x158]
shr ecx, 0x14
and ecx, 1
mov dword [edx], ecx
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov eax, dword [ebx + 0x158]
mov ecx, dword [eax]
mov edi, dword [esi + 0xca8]
shl ecx, 0x14
xor ecx, edi
and ecx, 0x100000
mov eax, edi
xor eax, ecx
mov dword [esi + 0xca8], eax
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edx, str.CharacterRender_BBox
mov edi, ebx
call fcn.00502c40
test eax, eax
je 0x569b33
or dword [esi + 0x70], 0x200
cmp dword [ebx], 0
je 0x569aa3
movss xmm0, dword [esi + 0x10e0]
subss xmm0, dword [esi + 0x10d0]
mov edx, dword [ebx + 0x158]
movss dword [esp + 0x10], xmm0
movss xmm0, dword [esi + 0x10e4]
subss xmm0, dword [esi + 0x10d4]
mov eax, dword [esp + 0x10]
movss dword [esp + 0x14], xmm0
movss xmm0, dword [esi + 0x10e8]
subss xmm0, dword [esi + 0x10d8]
mov ecx, dword [esp + 0x14]
mov dword [edx], eax
mov dword [edx + 4], ecx
mov ecx, dword [esp + 0x1c]
movss dword [esp + 0x18], xmm0
mov eax, dword [esp + 0x18]
mov dword [edx + 8], eax
mov dword [edx + 0xc], ecx
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
lea eax, [esp + 0x20]
mov ecx, ebx
call fcn.00502aa0
mov edx, dword [eax]
mov ecx, dword [eax + 4]
movss xmm0, dword [0x738a1c]
mov dword [esp + 0x10], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
movss xmm1, dword [esp + 0x10]
mov dword [esp + 0x18], edx
movss xmm2, dword [esp + 0x18]
mulss xmm1, xmm0
mulss xmm2, xmm0
xorps xmm0, xmm0
mov dword [esp + 0x14], ecx
movaps xmm3, xmm0
lea ecx, [esp + 0x10]
mov dword [esp + 0x1c], eax
movss dword [esp + 0x24], xmm0
subss xmm3, xmm1
subss xmm0, xmm2
push ecx
lea eax, [esi + 0x10d0]
lea edx, [esp + 0x24]
movss dword [esp + 0x14], xmm1
movss dword [esp + 0x1c], xmm2
movss dword [esp + 0x24], xmm3
movss dword [esp + 0x2c], xmm0
call fcn.00458640
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edx, str.CharacterAllow_Play_Dialog
mov edi, ebx
call fcn.00502c40
test eax, eax
je 0x569b98
cmp dword [ebx], 0
je 0x569b6a
mov edx, dword [esi + 0xe8c]
mov eax, dword [ebx + 0x158]
shr edx, 2
and edx, 1
mov dword [eax], edx
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [ebx + 0x158]
mov edx, dword [ecx]
mov edi, dword [esi + 0xe8c]
shl edx, 2
xor edx, edi
and edx, 4
mov eax, edi
xor eax, edx
mov dword [esi + 0xe8c], eax
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edx, str.CharacterMax_Cover_Dist
mov edi, ebx
call fcn.00502c40
test eax, eax
je 0x569c1b
cmp dword [ebx], 0
je 0x569bc9
mov eax, dword [ebx + 0x158]
mov ecx, dword [esi + 0x1180]
mov dword [eax], ecx
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edx, dword [ebx + 0x158]
movss xmm0, dword [edx]
movss xmm1, dword [0x738a74]
comiss xmm0, xmm1
movss xmm2, dword [0x738ac8]
ja 0x569bed
movaps xmm0, xmm1
jmp 0x569bf5
comiss xmm2, xmm0
ja 0x569bf5
movaps xmm0, xmm2
movss dword [ebx + 0x168], xmm1
movss dword [ebx + 0x16c], xmm2
movss dword [esi + 0x1180], xmm0
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edx, str.CharacterSticky_Cover_Node
mov edi, ebx
call fcn.00502c40
test eax, eax
je 0x569c74
cmp dword [ebx], 0
mov eax, dword [ebx + 0x158]
je 0x569c55
mov ecx, dword [esi + 0x1128]
mov dword [eax], ecx
mov edx, dword [esi + 0x112c]
mov dword [eax + 4], edx
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [eax]
mov dword [esi + 0x1128], ecx
mov edx, dword [eax + 4]
mov dword [esi + 0x112c], edx
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edx, str.CharacterSticky_Turret
mov edi, ebx
call fcn.00502c40
test eax, eax
je 0x569ccd
cmp dword [ebx], 0
mov eax, dword [ebx + 0x158]
je 0x569cae
mov ecx, dword [esi + 0x1138]
mov dword [eax], ecx
mov edx, dword [esi + 0x113c]
mov dword [eax + 4], edx
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [eax]
mov dword [esi + 0x1138], ecx
mov edx, dword [eax + 4]
mov dword [esi + 0x113c], edx
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edx, str.CharacterActivate_On_Death
mov edi, ebx
call fcn.00502c40
test eax, eax
je 0x569d26
cmp dword [ebx], 0
mov eax, dword [ebx + 0x158]
je 0x569d07
mov ecx, dword [esi + 0x1140]
mov dword [eax], ecx
mov edx, dword [esi + 0x1144]
mov dword [eax + 4], edx
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [eax]
mov dword [esi + 0x1140], ecx
mov edx, dword [eax + 4]
mov dword [esi + 0x1144], edx
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edx, str.CharacterAimAt_Guid
mov edi, ebx
call fcn.00502c40
test eax, eax
je 0x569d7f
cmp dword [ebx], 0
mov eax, dword [ebx + 0x158]
je 0x569d60
mov ecx, dword [esi + 0xe20]
mov dword [eax], ecx
mov edx, dword [esi + 0xe24]
mov dword [eax + 4], edx
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [eax]
mov dword [esi + 0xe20], ecx
mov edx, dword [eax + 4]
mov dword [esi + 0xe24], edx
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov eax, dword [esi + 0x10f0]
lea edi, [esi + 0x10f0]
push str.CharacterFollow_Target
push ebx
mov ecx, edi
call dword [eax + 4]
test eax, eax
je 0x569de3
mov ecx, edi
call fcn.00591e40
test eax, eax
je 0x569dc5
mov ecx, dword [eax + 8]
mov dword [esi + 0x1118], ecx
mov edx, dword [eax + 0xc]
mov dword [esi + 0x111c], edx
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
xor eax, eax
xor ecx, ecx
mov dword [esi + 0x1118], eax
mov dword [esi + 0x111c], ecx
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov eax, dword [esi + 0xda8]
lea edi, [esi + 0xda8]
push str.CharacterOverride_Target
push ebx
mov ecx, edi
call dword [eax + 4]
test eax, eax
je 0x569e58
lea eax, [esp + 0x10]
mov edx, edi
call fcn.00591df0
mov ecx, dword [eax]
mov dword [esi + 0xe18], ecx
mov edx, dword [eax + 4]
mov dword [esi + 0xe1c], edx
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push ecx
push edx
mov ecx, 0x8d68e0
call fcn.004013f0
test eax, eax
je 0x56a1ec
mov eax, dword [esi + 0xe1c]
mov ecx, dword [esi + 0xe18]
push 1
push eax
push ecx
mov eax, esi
call fcn.00567fe0
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edi, dword [esp + 0xc]
push 0x7f7fffff
push 0xff7fffff
add edi, 0xee4
push str.CharacterTweaksShoot_Delay
mov esi, ebx
call fcn.00502570
test eax, eax
jne 0x56a897
mov edx, str.CharacterTweaksAccuracy
mov edi, ebx
call fcn.00502c40
test eax, eax
je 0x569efe
cmp dword [ebx], 0
je 0x569eb5
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0xf04]
mov edx, dword [ebx + 0x158]
mov dword [edx], ecx
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov esi, accept
mov edx, reloc.WSOCK32.dll_accept
mov ecx, ebx
call fcn.00502a80
mov ecx, dword [esp + 0xc]
xor edx, edx
test eax, eax
setl dl
mov dword [ecx + 0xf04], eax
dec edx
and eax, edx
cmp eax, 0x64
mov dword [ecx + 0xf04], eax
jle 0x569eea
mov eax, 0x64
mov dword [ecx + 0xf04], eax
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edx, str.CharacterTweaksMoving_Target_Accuracy
mov edi, ebx
call fcn.00502c40
test eax, eax
je 0x569f7c
cmp dword [ebx], 0
je 0x569f33
mov ecx, dword [esp + 0xc]
mov eax, dword [ebx + 0x158]
mov edx, dword [ecx + 0xf08]
mov dword [eax], edx
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov esi, accept
mov edx, reloc.WSOCK32.dll_accept
mov ecx, ebx
call fcn.00502a80
mov ecx, dword [esp + 0xc]
xor edx, edx
test eax, eax
setl dl
mov dword [ecx + 0xf08], eax
dec edx
and eax, edx
cmp eax, 0x64
mov dword [ecx + 0xf08], eax
jle 0x569f68
mov eax, 0x64
mov dword [ecx + 0xf08], eax
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edx, str.CharacterTweaksWeapon_Drop_Percent
mov edi, ebx
call fcn.00502c40
test eax, eax
je 0x569ffb
cmp dword [ebx], 0
je 0x569fb3
mov eax, dword [esp + 0xc]
cvttss2si ecx, dword [eax + 0xef4]
mov edx, dword [ebx + 0x158]
mov dword [edx], ecx
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov esi, accept
mov edx, reloc.WSOCK32.dll_accept
mov ecx, ebx
call fcn.00502a80
test eax, eax
jg 0x56a1ec
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0xf14]
xorps xmm0, xmm0
and ecx, 0xfffffbff
mov dword [eax + 0xf14], ecx
movss dword [eax + 0xef4], xmm0
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edx, str.CharacterTweaksInventory_Drop_Percent
mov edi, ebx
call fcn.00502c40
test eax, eax
je 0x56a07a
cmp dword [ebx], 0
je 0x56a032
mov eax, dword [esp + 0xc]
cvttss2si ecx, dword [eax + 0xf00]
mov edx, dword [ebx + 0x158]
mov dword [edx], ecx
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov esi, accept
mov edx, reloc.WSOCK32.dll_accept
mov ecx, ebx
call fcn.00502a80
test eax, eax
jg 0x56a1ec
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0xf14]
xorps xmm0, xmm0
and ecx, 0xffffdfff
mov dword [eax + 0xf14], ecx
movss dword [eax + 0xf00], xmm0
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edx, str.CharacterTweaksDrop_Weapons
mov edi, ebx
call fcn.00502c40
test eax, eax
je 0x56a0d7
cmp dword [ebx], 0
je 0x56a0b5
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0xf14]
mov edx, dword [ebx + 0x158]
shr ecx, 0xa
and ecx, 1
mov dword [edx], ecx
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov eax, dword [ebx + 0x158]
mov ecx, dword [eax]
mov eax, dword [esp + 0xc]
mov edi, dword [eax + 0xf14]
shl ecx, 0xa
xor ecx, edi
and ecx, 0x400
jmp 0x56a1e6
mov edx, str.CharacterTweaksDrop_Ammo
mov edi, ebx
call fcn.00502c40
test eax, eax
je 0x56a134
cmp dword [ebx], 0
je 0x56a112
mov edx, dword [esp + 0xc]
mov eax, dword [edx + 0xf14]
mov ecx, dword [ebx + 0x158]
shr eax, 0xb
and eax, 1
mov dword [ecx], eax
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edx, dword [ebx + 0x158]
mov ecx, dword [edx]
mov eax, dword [esp + 0xc]
mov edi, dword [eax + 0xf14]
shl ecx, 0xb
xor ecx, edi
and ecx, 0x800
jmp 0x56a1e6
mov edx, str.CharacterTweaksDrop_Grenades
mov edi, ebx
call fcn.00502c40
test eax, eax
je 0x56a18e
cmp dword [ebx], 0
je 0x56a16f
mov edx, dword [esp + 0xc]
mov eax, dword [edx + 0xf14]
mov ecx, dword [ebx + 0x158]
shr eax, 0xc
and eax, 1
mov dword [ecx], eax
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edx, dword [ebx + 0x158]
mov ecx, dword [edx]
mov eax, dword [esp + 0xc]
mov edi, dword [eax + 0xf14]
shl ecx, 0xc
xor ecx, edi
and ecx, 0x1000
jmp 0x56a1e6
mov edx, str.CharacterTweaksDrop_Inventory
mov edi, ebx
call fcn.00502c40
test eax, eax
je 0x56a1fa
cmp dword [ebx], 0
je 0x56a1c9
mov edx, dword [esp + 0xc]
mov eax, dword [edx + 0xf14]
mov ecx, dword [ebx + 0x158]
shr eax, 0xd
and eax, 1
mov dword [ecx], eax
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edx, dword [ebx + 0x158]
mov ecx, dword [edx]
mov eax, dword [esp + 0xc]
mov edi, dword [eax + 0xf14]
shl ecx, 0xd
xor ecx, edi
and ecx, 0x2000
xor dword [eax + 0xf14], ecx
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edx, str.CharacterTweaksLight_Sight_Radius
mov edi, ebx
call fcn.00502c40
test eax, eax
je 0x56a27f
cmp dword [ebx], 0
mov edx, dword [ebx + 0x158]
je 0x56a22f
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0xe48]
mov dword [edx], ecx
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
movss xmm0, dword [edx]
movss xmm1, dword [0x738a74]
comiss xmm0, xmm1
movss xmm2, dword [0x738ac8]
ja 0x56a24d
movaps xmm0, xmm1
jmp 0x56a255
comiss xmm2, xmm0
ja 0x56a255
movaps xmm0, xmm2
mov eax, dword [esp + 0xc]
movss dword [ebx + 0x168], xmm1
movss dword [ebx + 0x16c], xmm2
movss dword [eax + 0xe48], xmm0
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edx, str.CharacterTweaksDark_Sight_Radius
mov edi, ebx
call fcn.00502c40
test eax, eax
je 0x56a304
cmp dword [ebx], 0
mov ecx, dword [ebx + 0x158]
je 0x56a2b4
mov edx, dword [esp + 0xc]
mov eax, dword [edx + 0xe4c]
mov dword [ecx], eax
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
movss xmm0, dword [ecx]
movss xmm1, dword [0x738a74]
comiss xmm0, xmm1
movss xmm2, dword [0x738ac8]
ja 0x56a2d2
movaps xmm0, xmm1
jmp 0x56a2da
comiss xmm2, xmm0
ja 0x56a2da
movaps xmm0, xmm2
mov edx, dword [esp + 0xc]
movss dword [ebx + 0x168], xmm1
movss dword [ebx + 0x16c], xmm2
movss dword [edx + 0xe4c], xmm0
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edx, str.CharacterTweaksSound_Radius
mov edi, ebx
call fcn.00502c40
test eax, eax
je 0x56a389
cmp dword [ebx], 0
mov eax, dword [ebx + 0x158]
je 0x56a339
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx + 0xe5c]
mov dword [eax], edx
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
movss xmm0, dword [eax]
movss xmm1, dword [0x738a74]
comiss xmm0, xmm1
movss xmm2, dword [0x738ac8]
ja 0x56a357
movaps xmm0, xmm1
jmp 0x56a35f
comiss xmm2, xmm0
ja 0x56a35f
movaps xmm0, xmm2
mov ecx, dword [esp + 0xc]
movss dword [ebx + 0x168], xmm1
movss dword [ebx + 0x16c], xmm2
movss dword [ecx + 0xe5c], xmm0
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edx, str.CharacterCurrent_State
mov edi, ebx
call fcn.00502c40
test eax, eax
je 0x56a3f9
cmp dword [ebx], 0
je 0x56a3cd
mov edx, dword [esp + 0xc]
mov ecx, dword [edx + 0x5f4]
xor eax, eax
test ecx, ecx
je 0x56a3b1
mov eax, dword [ecx + 0x48]
call fcn.0055c610
mov edx, eax
mov edi, ebx
call fcn.00502b90
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edi, dword [ebx + 0x158]
call fcn.0055c700
test eax, eax
je 0x56a3eb
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx]
push 0
push eax
call dword [edx + 0x2ec]
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edx, str.CharacterPathingUse_Small_Paths
mov edi, ebx
call fcn.00502c40
test eax, eax
je 0x56a47d
cmp dword [ebx], 0
je 0x56a450
mov eax, dword [esp + 0xc]
mov cl, byte [eax + 0x9d6]
test cl, cl
je 0x56a436
mov ecx, dword [ebx + 0x158]
mov dword [ecx], 1
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edx, dword [ebx + 0x158]
mov dword [edx], 0
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov eax, dword [ebx + 0x158]
mov esi, dword [eax]
mov edx, dword [esp + 0xc]
test esi, esi
sete cl
dec cl
mov eax, 1
and ecx, 0x80
mov byte [edx + 0x9d6], cl
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edx, str.CharacterPathingUse_Navigation_Map
mov edi, ebx
call fcn.00502c40
test eax, eax
je 0x56a4e6
cmp dword [ebx], 0
je 0x56a4b7
mov eax, dword [esp + 0xc]
mov edx, dword [ebx + 0x158]
xor ecx, ecx
mov cl, byte [eax + 0x9d7]
mov eax, 1
and ecx, 1
mov dword [edx], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov eax, dword [ebx + 0x158]
mov cl, byte [eax]
mov eax, dword [esp + 0xc]
mov bl, byte [eax + 0x9d7]
xor cl, bl
and cl, 1
mov dl, bl
xor dl, cl
mov byte [eax + 0x9d7], dl
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edx, str.CharacterOverride_Idle_Lookat
mov edi, ebx
call fcn.00502c40
test eax, eax
je 0x56a549
cmp dword [ebx], 0
mov eax, dword [esp + 0xc]
je 0x56a524
mov ecx, dword [eax + 0x1148]
mov edx, dword [ebx + 0x158]
mov dword [edx], ecx
mov eax, dword [eax + 0x114c]
mov dword [edx + 4], eax
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [ebx + 0x158]
mov edx, dword [ecx]
mov dword [eax + 0x1148], edx
mov ecx, dword [ecx + 4]
mov dword [eax + 0x114c], ecx
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edx, str.CharacterIgnore_Lookat_Interest
mov edi, ebx
call fcn.00502c40
test eax, eax
je 0x56a5b6
cmp dword [ebx], 0
je 0x56a584
mov edx, dword [esp + 0xc]
mov eax, dword [edx + 0x11a4]
mov ecx, dword [ebx + 0x158]
shr eax, 3
and eax, 1
mov dword [ecx], eax
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edx, dword [ebx + 0x158]
mov ecx, dword [edx]
mov eax, dword [esp + 0xc]
mov edi, dword [eax + 0x11a4]
shl ecx, 3
xor ecx, edi
and ecx, 8
mov edx, edi
xor edx, ecx
mov dword [eax + 0x11a4], edx
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edx, str.CharacterLog_AI_State_Changes
mov edi, ebx
call fcn.00502c40
test eax, eax
je 0x56a623
cmp dword [ebx], 0
je 0x56a5f1
mov edx, dword [esp + 0xc]
mov eax, dword [edx + 0x10c4]
mov ecx, dword [ebx + 0x158]
shr eax, 5
and eax, 1
mov dword [ecx], eax
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edx, dword [ebx + 0x158]
mov ecx, dword [edx]
mov eax, dword [esp + 0xc]
mov edi, dword [eax + 0x10c4]
shl ecx, 5
xor ecx, edi
and ecx, 0x20
mov edx, edi
xor edx, ecx
mov dword [eax + 0x10c4], edx
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edx, str.CharacterLeash_Guid
mov edi, ebx
call fcn.00502c40
test eax, eax
je 0x56a732
cmp dword [ebx], 0
je 0x56a665
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0xc48]
mov edx, dword [ebx + 0x158]
mov dword [edx], ecx
mov eax, dword [eax + 0xc4c]
mov dword [edx + 4], eax
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ebx, dword [ebx + 0x158]
mov ecx, dword [ebx]
mov esi, dword [esp + 0xc]
mov dword [esi + 0xc48], ecx
mov edx, dword [ebx + 4]
mov eax, ecx
mov ecx, edx
or eax, ecx
mov dword [esi + 0xc4c], edx
je 0x56a6f9
mov ecx, dword [ebx + 4]
mov edx, dword [ebx]
push ecx
push edx
mov ecx, 0x8d68e0
call fcn.004013f0
test eax, eax
je 0x56a6f9
movss xmm0, dword [eax + 0x40]
movss dword [esp + 0x10], xmm0
movss xmm0, dword [eax + 0x44]
mov ecx, dword [esp + 0x10]
movss dword [esp + 0x14], xmm0
movss xmm0, dword [eax + 0x48]
mov edx, dword [esp + 0x14]
lea eax, [esi + 0x9c0]
mov dword [eax], ecx
mov dword [eax + 4], edx
mov edx, dword [esp + 0x1c]
movss dword [esp + 0x18], xmm0
mov ecx, dword [esp + 0x18]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
mov eax, dword [esi + 0xc70]
mov dword [esi + 0x9d0], eax
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
xorps xmm0, xmm0
movss dword [esi + 0x9c8], xmm0
movss dword [esi + 0x9c4], xmm0
movss dword [esi + 0x9c0], xmm0
movss xmm0, dword [0x7389c8]
movss dword [esi + 0x9d0], xmm0
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edx, str.CharacterLeash_Distance
mov edi, ebx
call fcn.00502c40
test eax, eax
je 0x56ad20
cmp dword [ebx], 0
je 0x56a81c
mov esi, dword [esp + 0xc]
mov ecx, dword [ebx + 0x158]
mov edx, dword [esi + 0xc70]
mov dword [ecx], edx
mov eax, dword [esi + 0xc48]
mov ecx, dword [esi + 0xc4c]
or eax, ecx
je 0x56a7e3
mov edx, dword [esi + 0xc48]
push ecx
push edx
mov ecx, 0x8d68e0
call fcn.004013f0
test eax, eax
je 0x56a7e3
movss xmm0, dword [eax + 0x40]
movss dword [esp + 0x10], xmm0
movss xmm0, dword [eax + 0x44]
mov ecx, dword [esp + 0x10]
movss dword [esp + 0x14], xmm0
movss xmm0, dword [eax + 0x48]
mov edx, dword [esp + 0x14]
lea eax, [esi + 0x9c0]
mov dword [eax], ecx
mov dword [eax + 4], edx
mov edx, dword [esp + 0x1c]
movss dword [esp + 0x18], xmm0
mov ecx, dword [esp + 0x18]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
mov eax, dword [esi + 0xc70]
mov dword [esi + 0x9d0], eax
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
xorps xmm0, xmm0
movss dword [esi + 0x9c0], xmm0
movss dword [esi + 0x9c4], xmm0
movss dword [esi + 0x9c8], xmm0
movss xmm0, dword [0x7389c8]
movss dword [esi + 0x9d0], xmm0
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov eax, dword [ebx + 0x158]
movss xmm0, dword [eax]
movss xmm1, dword [0x738a74]
comiss xmm0, xmm1
movss xmm2, dword [0x738ac8]
ja 0x56a840
movaps xmm0, xmm1
jmp 0x56a848
comiss xmm2, xmm0
ja 0x56a848
movaps xmm0, xmm2
xorps xmm3, xmm3
comiss xmm3, xmm0
movss dword [ebx + 0x168], xmm1
movss dword [ebx + 0x16c], xmm2
jbe 0x56a865
movaps xmm0, xmm3
jmp 0x56a88b
movss xmm0, dword [eax]
comiss xmm0, xmm1
ja 0x56a873
movaps xmm0, xmm1
jmp 0x56a87b
comiss xmm2, xmm0
ja 0x56a87b
movaps xmm0, xmm2
movss dword [ebx + 0x168], xmm1
movss dword [ebx + 0x16c], xmm2
mov ecx, dword [esp + 0xc]
movss dword [ecx + 0xc70], xmm0
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp dword [ebx], 0
je 0x56a8cc
mov edx, dword [esi + 0xf14]
mov eax, dword [ebx + 0x158]
shr edx, 4
and edx, 1
mov dword [eax], edx
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [ebx + 0x158]
mov edx, dword [ecx]
mov edi, dword [esi + 0xf14]
shl edx, 4
xor edx, edi
and edx, 0x10
mov eax, edi
xor eax, edx
mov dword [esi + 0xf14], eax
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp dword [ebx], 0
je 0x56a921
mov eax, dword [esi + 0x11a4]
mov ecx, dword [ebx + 0x158]
shr eax, 6
and eax, 1
mov dword [ecx], eax
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edx, dword [ebx + 0x158]
mov eax, dword [edx]
mov edi, dword [esi + 0x11a4]
shl eax, 6
xor eax, edi
and eax, 0x40
mov ecx, edi
xor ecx, eax
mov dword [esi + 0x11a4], ecx
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp dword [ebx], 0
je 0x56a976
mov ecx, dword [esi + 0xe8c]
mov edx, dword [ebx + 0x158]
shr ecx, 0xb
and ecx, 1
mov dword [edx], ecx
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov eax, dword [ebx + 0x158]
mov ecx, dword [eax]
mov ebx, dword [esi + 0xe8c]
shl ecx, 0xb
xor ecx, ebx
and ecx, 0x800
mov edx, ebx
xor edx, ecx
mov eax, edx
test ah, 8
mov dword [esi + 0xe8c], edx
je 0x56a1ec
and eax, 0xfffffbff
mov dword [esi + 0xe8c], eax
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp dword [ebx], 0
je 0x56a9e4
mov edx, dword [esi + 0xe8c]
mov eax, dword [ebx + 0x158]
shr edx, 0xa
and edx, 1
mov dword [eax], edx
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [ebx + 0x158]
mov edx, dword [ecx]
mov edi, dword [esi + 0xe8c]
shl edx, 0xa
xor edx, edi
and edx, 0x400
mov eax, edi
xor eax, edx
mov dword [esi + 0xe8c], eax
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp dword [ebx], 0
je 0x56aa3b
mov eax, dword [esi + 0x524]
mov ecx, dword [ebx + 0x158]
shr eax, 1
and eax, 1
mov dword [ecx], eax
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edx, dword [ebx + 0x158]
cmp dword [edx], 0
mov eax, dword [esi + 0x524]
je 0x56aa63
or eax, 3
mov dword [esi + 0x524], eax
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
and eax, 0xfffffffd
mov dword [esi + 0x524], eax
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp dword [ebx], 0
je 0x56aaa0
mov ecx, dword [ebx + 0x158]
xor eax, eax
mov al, byte [esi + 0xcaa]
and eax, 1
mov dword [ecx], eax
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edx, dword [ebx + 0x158]
mov eax, dword [edx]
mov edi, dword [esi + 0xca8]
shl eax, 0x10
xor eax, edi
and eax, 0x10000
mov ecx, edi
xor ecx, eax
mov dword [esi + 0xca8], ecx
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp dword [ebx], 0
je 0x56aaf7
mov ecx, dword [esi + 0xf14]
mov edx, dword [ebx + 0x158]
shr ecx, 7
and ecx, 1
mov dword [edx], ecx
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov eax, dword [ebx + 0x158]
mov ecx, dword [eax]
mov edi, dword [esi + 0xf14]
shl ecx, 7
xor ecx, edi
and ecx, 0x80
mov eax, edi
xor eax, ecx
mov dword [esi + 0xf14], eax
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp dword [ebx], 0
je 0x56ab4f
mov edx, dword [esi + 0x11a4]
mov eax, dword [ebx + 0x158]
shr edx, 4
and edx, 1
mov dword [eax], edx
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [ebx + 0x158]
mov edx, dword [ecx]
mov edi, dword [esi + 0x11a4]
shl edx, 4
xor edx, edi
and edx, 0x10
mov eax, edi
xor eax, edx
mov dword [esi + 0x11a4], eax
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp dword [ebx], 0
mov eax, 1
je 0x56aba0
mov ecx, dword [esi + 0x524]
mov edx, dword [ebx + 0x158]
and ecx, eax
mov dword [edx], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [ebx + 0x158]
cmp dword [ecx], 0
mov ecx, dword [esi + 0x524]
je 0x56abc2
or ecx, eax
mov dword [esi + 0x524], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
and ecx, 0xfffffffc
mov dword [esi + 0x524], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp dword [ebx], 0
je 0x56abfb
mov edx, dword [esi + 0x11a4]
mov eax, dword [ebx + 0x158]
shr edx, 5
and edx, 1
mov dword [eax], edx
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [ebx + 0x158]
mov edx, dword [ecx]
mov edi, dword [esi + 0x11a4]
shl edx, 5
xor edx, edi
and edx, 0x20
mov eax, edi
xor eax, edx
mov dword [esi + 0x11a4], eax
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp dword [ebx], 0
je 0x56ac4a
mov eax, dword [ebx + 0x158]
mov ecx, dword [esi + 0xf10]
mov dword [eax], ecx
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edx, dword [ebx + 0x158]
mov eax, dword [edx]
mov dword [esi + 0xf10], eax
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp dword [ebx], 0
je 0x56ac8d
mov ecx, dword [esi + 0xf14]
mov edx, dword [ebx + 0x158]
shr ecx, 6
and ecx, 1
mov dword [edx], ecx
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov eax, dword [ebx + 0x158]
mov ecx, dword [eax]
mov edi, dword [esi + 0xf14]
shl ecx, 6
xor ecx, edi
and ecx, 0x40
mov eax, edi
xor eax, ecx
mov dword [esi + 0xf14], eax
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp dword [ebx], 0
je 0x56ace2
mov edx, dword [esi + 0xf14]
mov eax, dword [ebx + 0x158]
shr edx, 5
and edx, 1
mov dword [eax], edx
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [ebx + 0x158]
mov edx, dword [ecx]
mov edi, dword [esi + 0xf14]
shl edx, 5
xor edx, edi
and edx, 0x20
mov eax, edi
xor eax, edx
mov dword [esi + 0xf14], eax
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push ebx
mov ecx, esi
call fcn.004f5d90
test eax, eax
jne 0x56a897
mov eax, dword [esp + 0xc]
mov esi, dword [eax + 0x5f0]
xor edi, edi
test esi, esi
je 0x56ad57
mov eax, dword [esi + 0x48]
test eax, eax
je 0x56ad48
mov edx, dword [esi]
push ebx
mov ecx, esi
call dword [edx + 8]
test eax, eax
je 0x56ad48
mov edi, 1
mov esi, dword [esi + 0x50]
test esi, esi
jne 0x56ad30
test edi, edi
jne 0x56a897
push str.Factions_
mov esi, ebx
call fcn.00502be0
mov edi, eax
mov eax, dword [esp + 0xc]
lea ecx, [eax + 0xb0]
push ecx
add eax, 0xac
call fcn.00527aa0
add esp, 4
test eax, eax
jne 0x56a897
mov dword [ebx + 0x108], edi
mov byte [edi + ebx + 0x88], al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4