Function at 0x100f6878
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
push ebx
push esi
push edi
mov edi, dword [ebp + 0x10]
xor ebx, ebx
push ebx
push 0x10142c40
push ebx
mov eax, dword [edi]
push edi
mov dword [ebp - 0xc], ebx
call dword [eax + 0x24]
mov esi, dword [ebp + 8]
xor ecx, ecx
inc ecx
test eax, eax
jne 0x100f68b7
mov eax, dword [esi]
push ecx
push ebx
push 0x3f2
push esi
call dword [eax + 0x1c]
xor ecx, ecx
mov byte [ebp - 1], bl
inc ecx
test eax, eax
je 0x100f68ba
mov byte [ebp - 1], cl
mov eax, dword [esi + 0xe0]
mov edx, ecx
mov ebx, dword [ebp + 0xc]
mov dword [ebp - 8], ecx
cmp dword [eax + 0x24], ecx
jle 0x100f68fc
mov eax, dword [esi + 0xe0]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x10]
mov ecx, dword [ebx]
push 0x1007
push edi
push eax
push ebx
call dword [ecx + 0xcc]
mov edx, dword [ebp - 8]
mov eax, dword [esi + 0xe0]
inc edx
mov dword [ebp - 8], edx
cmp edx, dword [eax + 0x24]
jl 0x100f68cd
mov eax, dword [ebx]
push 0x100
push ebx
call dword [eax + 0xa0]
push edi
push ebx
push esi
call sym.rt3d.dll_public:_void___thiscall_QUAT::constructor_struct_MATRIX3D_const__
mov eax, dword [ebx]
push ebx
call dword [eax + 0xa4]
cmp byte [ebp - 1], 0
je 0x100f6940
mov eax, dword [ebx]
push 0x100c
push ebx
call dword [eax + 0xa0]
mov eax, dword [ebx]
push 0xa
push ebx
call dword [eax + 0x68]
mov eax, dword [ebx]
push ebx
call dword [eax + 0xa4]
cmp byte [esi + 0x349], 0
je 0x100f696e
mov eax, dword [ebx]
push 0x101f
push ebx
call dword [eax + 0xa0]
movzx eax, byte [esi + 0x349]
mov ecx, dword [ebx]
push eax
push ebx
call dword [ecx + 0x60]
mov eax, dword [ebx]
push ebx
call dword [eax + 0xa4]
lea edi, [esi + 0x118]
movss xmm0, dword [edi]
comiss xmm0, dword [edi + 0xc]
ja 0x100f69b7
mov eax, dword [ebx]
push 0x102a
push ebx
call dword [eax + 0xa0]
mov eax, dword [ebx]
push 4
push 3
push edi
push ebx
call dword [eax + 0xbc]
mov ecx, dword [ebx]
lea eax, [esi + 0x124]
push 4
push 3
push eax
push ebx
call dword [ecx + 0xbc]
mov eax, dword [ebx]
push ebx
call dword [eax + 0xa4]
mov eax, dword [esi]
lea ecx, [ebp - 0x1c]
push 5
push ecx
push 0x3ec
push esi
call dword [eax + 0x1c]
and dword [ebp - 0x20], 0
lea eax, [ebp - 0x28]
and dword [ebp - 0x24], 0
and dword [ebp - 0x28], 0
push eax
lea eax, [ebp - 0x1c]
push eax
call sym.rt3d.dll_public:_void___thiscall_QUAT::constructor_struct_MATRIX3D_const__
pop ecx
pop ecx
test al, al
je 0x100f69f6
push 0x1001
push ebx
lea eax, [ebp - 0x1c]
push eax
call sym.rt3d.dll_public:_void___thiscall_QUAT::constructor_struct_MATRIX3D_const__
mov eax, dword [esi + 0x28]
lea edx, [ebp - 0x28]
push 5
push edx
push 0x405
mov ecx, dword [eax]
push eax
call dword [ecx + 0x1c]
lea esi, [ebp - 0x28]
lea edi, [ebp - 0x1c]
movsd dword es:[edi], dword [esi]
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x1c]
push eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
and dword [ebp - 0x20], 0
and dword [ebp - 0x24], 0
and dword [ebp - 0x28], 0
call sym.rt3d.dll_public:_void___thiscall_QUAT::constructor_struct_MATRIX3D_const__
pop ecx
pop ecx
test al, al
je 0x100f6a41
push 0x1002
push ebx
lea eax, [ebp - 0x1c]
push eax
call sym.rt3d.dll_public:_void___thiscall_QUAT::constructor_struct_MATRIX3D_const__
mov esi, dword [ebp + 0x10]
xor ecx, ecx
push ecx
push str.viewports
push ecx
mov eax, dword [esi]
push esi
call dword [eax + 0x24]
mov edi, dword [ebp + 8]
test eax, eax
je 0x100f6d61
cmp dword [edi + 0x164], 0
je 0x100f6d61
xor eax, eax
inc eax
mov byte [ebp - 1], al
mov al, byte [edi + 0x348]
test al, al
je 0x100f6aa4
cmp al, 0xff
je 0x100f6aa4
mov eax, dword [ebx]
push 0x101d
push ebx
call dword [eax + 0xa0]
movzx eax, byte [edi + 0x348]
mov ecx, dword [ebx]
push eax
push ebx
call dword [ecx + 0x60]
mov eax, dword [ebx]
push ebx
call dword [eax + 0xa4]
mov eax, dword [ebx]
push 0x100e
push ebx
call dword [eax + 0xa0]
mov eax, dword [edi + 0x164]
lea ecx, [ebp + 0xf]
xor edx, edx
inc edx
push edx
mov al, byte [eax + 0x14]
mov byte [ebp + 0xf], al
mov eax, dword [ebx]
push ecx
push ebx
call dword [eax + 0x40]
mov eax, dword [edi + 0x164]
xor ecx, ecx
inc ecx
push ecx
lea ecx, [ebp + 0xf]
mov al, byte [eax + 0x1c]
mov byte [ebp + 0xf], al
mov eax, dword [ebx]
push ecx
push ebx
call dword [eax + 0x40]
mov eax, dword [edi + 0x164]
xor ecx, ecx
inc ecx
push ecx
lea ecx, [ebp + 0xf]
mov al, byte [eax + 0x20]
mov byte [ebp + 0xf], al
mov eax, dword [ebx]
push ecx
push ebx
call dword [eax + 0x40]
mov eax, dword [edi + 0x164]
xor ecx, ecx
inc ecx
push ecx
lea ecx, [ebp + 0xf]
mov al, byte [eax + 0x2e]
mov byte [ebp + 0xf], al
mov eax, dword [ebx]
push ecx
push ebx
call dword [eax + 0x40]
mov eax, dword [edi + 0x164]
mov ecx, dword [ebx]
push ecx
movss xmm0, dword [eax + 0x24]
movss dword [esp], xmm0
push ebx
call dword [ecx + 0xdc]
mov eax, dword [edi + 0x164]
mov ecx, dword [ebx]
push ecx
movss xmm0, dword [eax + 0x50]
movss dword [esp], xmm0
push ebx
call dword [ecx + 0xdc]
mov eax, dword [edi + 0x164]
mov ecx, dword [ebx]
push ecx
movss xmm0, dword [eax + 0x54]
movss dword [esp], xmm0
push ebx
call dword [ecx + 0xdc]
mov eax, dword [edi + 0x164]
mov ecx, dword [ebx]
push ecx
movss xmm0, dword [eax + 0x58]
movss dword [esp], xmm0
push ebx
call dword [ecx + 0xdc]
mov eax, dword [edi + 0x164]
mov ecx, dword [ebx]
push ecx
movss xmm0, dword [eax + 0x90]
movss dword [esp], xmm0
push ebx
call dword [ecx + 0xdc]
mov eax, dword [edi + 0x164]
mov ecx, dword [ebx]
push ecx
movss xmm0, dword [eax + 0x94]
movss dword [esp], xmm0
push ebx
call dword [ecx + 0xdc]
mov eax, dword [edi + 0x164]
mov ecx, dword [ebx]
push ecx
movss xmm0, dword [eax + 0x94]
movss dword [esp], xmm0
push ebx
call dword [ecx + 0xdc]
mov eax, dword [edi + 0x164]
mov ecx, dword [ebx]
sub eax, 0xffffff80
push 4
push 4
push eax
push ebx
call dword [ecx + 0xbc]
mov eax, dword [edi + 0x164]
mov ecx, dword [ebx]
add eax, 0x70
push 4
push 4
push eax
push ebx
call dword [ecx + 0xbc]
mov eax, dword [edi + 0x164]
push 0
pop ecx
push 1
test byte [eax + 0x18], 1
mov eax, dword [eax + 0x28]
pop edx
cmovne ecx, edx
test dl, al
je 0x100f6c24
or ecx, 2
test al, 2
je 0x100f6c2b
or ecx, 4
test al, 4
je 0x100f6c32
or ecx, 8
test al, 8
je 0x100f6c39
or ecx, 0x10
test al, 0x10
je 0x100f6c40
or ecx, 0x20
test al, 0x20
je 0x100f6c47
or ecx, 0x40
test al, 0x40
je 0x100f6c51
or ecx, 0x80
test al, al
jns 0x100f6c5b
or ecx, 0x100
mov edx, 0x200
test eax, 0x100
je 0x100f6c69
or ecx, edx
test edx, eax
je 0x100f6c73
or ecx, 0x400
mov edx, 0x800
test eax, 0x10000
je 0x100f6c81
or ecx, edx
test eax, 0x400
je 0x100f6c8e
or ecx, 0x1000
test edx, eax
je 0x100f6c98
or ecx, 0x2000
mov eax, dword [ebx]
push ecx
push ebx
call dword [eax + 0x68]
mov eax, dword [edi + 0x164]
cmp byte [eax + 0x60], 0
je 0x100f6cd3
mov eax, dword [ebx]
push 0x1024
push ebx
call dword [eax + 0xa0]
mov eax, dword [edi + 0x164]
mov ecx, dword [ebx]
movzx eax, byte [eax + 0x60]
push eax
push ebx
call dword [ecx + 0x60]
mov eax, dword [ebx]
push ebx
call dword [eax + 0xa4]
mov eax, dword [ebx]
push ebx
call dword [eax + 0xa4]
mov eax, dword [edi + 0x164]
test dword [eax + 0x28], 0x4000
je 0x100f6d65
cmp dword [edi + 0x2a8], 0
je 0x100f6d65
mov eax, dword [ebx]
push 0x1020
push ebx
call dword [eax + 0xa0]
mov eax, dword [edi + 0x2a8]
cmp dword [eax + 0x68], 0
je 0x100f6d20
xor ecx, ecx
inc ecx
push ecx
push 0x1021
push ebx
push dword [eax + 0x68]
call sym.rt3d.dll_public:_void___thiscall_QUAT::constructor_struct_MATRIX3D_const__
mov eax, dword [ebx]
push 0x1022
push ebx
call dword [eax + 0xa0]
mov eax, dword [edi + 0x2a8]
mov ecx, dword [ebx]
push ecx
mov eax, dword [eax + 0x70]
mov eax, dword [eax + 0x62]
movss xmm0, dword [eax]
movss dword [esp], xmm0
push ebx
call dword [ecx + 0xdc]
mov eax, dword [ebx]
push ebx
call dword [eax + 0xa4]
mov eax, dword [ebx]
push ebx
call dword [eax + 0xa4]
jmp 0x100f6d65
mov byte [ebp - 1], 0
mov eax, dword [edi + 0xf4]
xor edx, edx
mov dword [ebp - 8], edx
cmp dword [eax + 0x24], edx
jle 0x100f6fe7
mov eax, dword [edi + 0xf4]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x10]
mov esi, eax
mov al, byte [ebp - 1]
mov dword [ebp - 0x10], esi
cmp dword [esi + 0x7c], 0
jne 0x100f6d9c
test al, al
je 0x100f6fce
cmp esi, dword [edi + 0x10c]
jne 0x100f6dad
mov ecx, 0x100f
test al, al
jne 0x100f6db2
mov ecx, 0x100d
mov eax, dword [ebx]
push ecx
push ebx
call dword [eax + 0xa0]
cmp dword [esi + 0xc], 0
je 0x100f6dd6
mov eax, dword [ebx]
push 0x1009
push dword [ebp + 0x10]
push dword [esi + 0xc]
push ebx
call dword [eax + 0xcc]
cmp dword [esi + 0x10], 0
je 0x100f6df0
mov eax, dword [ebx]
push 0x100a
push dword [ebp + 0x10]
push dword [esi + 0x10]
push ebx
call dword [eax + 0xcc]
cmp dword [esi + 0x18], 0
je 0x100f6e0a
mov eax, dword [ebx]
push 0x101b
push dword [ebp + 0x10]
push dword [esi + 0x18]
push ebx
call dword [eax + 0xcc]
cmp dword [esi + 0x28], 0
je 0x100f6e1f
push 0x1027
push ebx
lea eax, [esi + 0x24]
push eax
call sym.rt3d.dll_public:_void___thiscall_QUAT::constructor_struct_MATRIX3D_const__
push 0x1010
push dword [esi + 0x38]
push ebx
call sym.rt3d.dll_public:_void___thiscall_QUAT::constructor_struct_MATRIX3D_const__
push 0x1012
push dword [esi + 0x3c]
push ebx
call sym.rt3d.dll_public:_void___thiscall_QUAT::constructor_struct_MATRIX3D_const__
push 0x1012
push dword [esi + 0x40]
push ebx
call sym.rt3d.dll_public:_void___thiscall_QUAT::constructor_struct_MATRIX3D_const__
push 0x1013
push dword [esi + 0x44]
push ebx
call sym.rt3d.dll_public:_void___thiscall_QUAT::constructor_struct_MATRIX3D_const__
push 0x1014
push dword [esi + 0x48]
push ebx
call sym.rt3d.dll_public:_void___thiscall_QUAT::constructor_struct_MATRIX3D_const__
push 0x1015
push dword [esi + 0x4c]
push ebx
call sym.rt3d.dll_public:_void___thiscall_QUAT::constructor_struct_MATRIX3D_const__
add esp, 0x48
push 0x1016
push dword [esi + 0x50]
push ebx
call sym.rt3d.dll_public:_void___thiscall_QUAT::constructor_struct_MATRIX3D_const__
push 0x1017
push dword [esi + 0x54]
push ebx
call sym.rt3d.dll_public:_void___thiscall_QUAT::constructor_struct_MATRIX3D_const__
push 0x1018
push dword [esi + 0x58]
push ebx
call sym.rt3d.dll_public:_void___thiscall_QUAT::constructor_struct_MATRIX3D_const__
push 0x1019
push dword [esi + 0x5c]
push ebx
call sym.rt3d.dll_public:_void___thiscall_QUAT::constructor_struct_MATRIX3D_const__
push 0x101a
push dword [esi + 0x60]
push ebx
call sym.rt3d.dll_public:_void___thiscall_QUAT::constructor_struct_MATRIX3D_const__
push 0x1025
push dword [esi + 0x64]
push ebx
call sym.rt3d.dll_public:_void___thiscall_QUAT::constructor_struct_MATRIX3D_const__
add esp, 0x48
cmp dword [esi + 0x7c], 0
je 0x100f6ef9
xor eax, eax
inc eax
cmp dword [esi + 0x7c], eax
mov eax, dword [ebx]
jne 0x100f6ee4
push 0x101c
jmp 0x100f6ee9
push 0x1026
push ebx
call dword [eax + 0xa0]
mov eax, dword [ebx]
push ebx
call dword [eax + 0xa4]
mov eax, dword [edi + 0xf4]
cmp dword [eax + 0x24], 0
je 0x100f6f40
mov eax, dword [ebx]
push 0x101e
push ebx
call dword [eax + 0xa0]
push dword [esi + 0x6c]
mov eax, dword [ebx]
push ebx
call dword [eax + 0x68]
push dword [esi + 0x70]
mov eax, dword [ebx]
push ebx
call dword [eax + 0x68]
push dword [esi + 0x74]
mov eax, dword [ebx]
push ebx
call dword [eax + 0x68]
push dword [esi + 0x78]
mov eax, dword [ebx]
push ebx
call dword [eax + 0x68]
mov eax, dword [ebx]
push ebx
call dword [eax + 0xa4]
mov ecx, dword [esi + 0x2c]
test ecx, ecx
je 0x100f6f65
mov eax, dword [ecx]
push ecx
call dword [eax + 0x64]
test eax, eax
je 0x100f6f65
mov eax, dword [ebx]
push 0x1023
push dword [ebp + 0x10]
push dword [esi + 0x2c]
push ebx
call dword [eax + 0xcc]
mov ecx, dword [esi + 0x30]
test ecx, ecx
je 0x100f6fc5
xor eax, eax
mov edx, eax
mov dword [ebp + 0xc], edx
cmp dword [ecx + 0x24], eax
jle 0x100f6fc5
mov edi, dword [ebp - 0x10]
mov eax, dword [ecx]
push edx
push ecx
call dword [eax + 0x10]
mov ecx, dword [ebx]
mov esi, eax
push 0x1028
push ebx
call dword [ecx + 0xa0]
cmp dword [esi], 0
je 0x100f6faa
mov eax, dword [ebx]
push 0x1029
push dword [ebp + 0x10]
push dword [esi]
push ebx
call dword [eax + 0xcc]
mov eax, dword [ebx]
push ebx
call dword [eax + 0xa4]
mov edx, dword [ebp + 0xc]
mov ecx, dword [edi + 0x30]
inc edx
mov dword [ebp + 0xc], edx
cmp edx, dword [ecx + 0x24]
jl 0x100f6f7b
mov edi, dword [ebp + 8]
mov eax, dword [ebx]
push ebx
call dword [eax + 0xa4]
mov edx, dword [ebp - 8]
mov eax, dword [edi + 0xf4]
inc edx
mov dword [ebp - 8], edx
cmp edx, dword [eax + 0x24]
jl 0x100f6d79
mov esi, dword [ebp + 0x10]
cmp byte [ebp - 1], 0
jne 0x100f702b
mov eax, dword [edi + 0x10c]
test eax, eax
je 0x100f700e
mov ecx, dword [eax + 0x10]
test ecx, ecx
je 0x100f700e
mov eax, dword [ebx]
push 0x100a
push esi
push ecx
push ebx
call dword [eax + 0xcc]
mov eax, dword [edi]
push edi
call dword [eax + 0x154]
test eax, eax
je 0x100f702b
mov ecx, dword [ebx]
push 0x1009
push esi
push eax
push ebx
call dword [ecx + 0xcc]
movss xmm0, dword [edi + 0x294]
ucomiss xmm0, dword [0x1013125c]
lahf
test ah, 0x44
jnp 0x100f706e
mov eax, dword [ebx]
push 0x1003
push ebx
call dword [eax + 0xa0]
movss xmm0, dword [edi + 0x294]
mov eax, dword [ebx]
push ecx
movss dword [esp], xmm0
push ebx
call dword [eax + 0xdc]
mov eax, dword [ebx]
push ebx
call dword [eax + 0xa4]
xor edx, edx
cmp dword [edi + 0xe8], edx
je 0x100f7107
mov eax, dword [esi]
xor ecx, ecx
inc ecx
push ecx
push str.animation
push edx
push esi
call dword [eax + 0x24]
test eax, eax
je 0x100f7105
mov eax, dword [edi + 0xe8]
xor ecx, ecx
mov edx, ecx
mov dword [ebp + 8], ecx
cmp dword [eax + 0x24], ecx
jle 0x100f70d1
mov eax, dword [edi + 0xe8]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x10]
mov ecx, dword [ebx]
push 0x1004
push esi
push eax
push ebx
call dword [ecx + 0xcc]
mov edx, dword [ebp + 8]
mov eax, dword [edi + 0xe8]
inc edx
mov dword [ebp + 8], edx
cmp edx, dword [eax + 0x24]
jl 0x100f70a2
mov ecx, dword [edi + 0xfc]
test ecx, ecx
je 0x100f70eb
mov eax, dword [ebx]
push 0x1006
push esi
push ecx
push ebx
call dword [eax + 0xcc]
mov ecx, dword [edi + 0xf8]
test ecx, ecx
je 0x100f7105
mov eax, dword [ebx]
push 0x1005
push esi
push ecx
push ebx
call dword [eax + 0xcc]
xor edx, edx
mov eax, dword [edi + 0xec]
test eax, eax
je 0x100f7147
cmp dword [eax + 0x24], edx
jle 0x100f7147
mov ecx, dword [edi + 0xec]
mov esi, dword [ebx]
push 0x100b
push dword [ebp + 0x10]
mov eax, dword [ecx]
push edx
push ecx
call dword [eax + 0x10]
push eax
push ebx
call dword [esi + 0xcc]
mov edx, dword [ebp - 0xc]
mov eax, dword [edi + 0xec]
inc edx
mov dword [ebp - 0xc], edx
cmp edx, dword [eax + 0x24]
jl 0x100f7116
mov eax, dword [ebx]
push ebx
call dword [eax + 0xd8]
push dword [edi + 0x170]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x2c]
test eax, eax
js 0x100f7177
mov ecx, dword [ebx]
push 0x1008
push dword [ebp + 0x10]
push dword [edi + 0x170]
push ebx
call dword [ecx + 0xcc]
pop edi
xor eax, eax
pop esi
inc eax
pop ebx
mov esp, ebp
pop ebp
ret 0xc