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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x1019d4c6
mov eax, dword fs:[0]
push eax
sub esp, 0x1e4
push ebx
push ebp
push esi
push edi
mov eax, dword [0x10218460]
xor eax, esp
push eax
lea eax, [esp + 0x1f8]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [esp + 0x1c], ebx
lea ecx, [ebx + 0x98]
xor edi, edi
call fcn.10038410
lea ecx, [ebx + 0xbc]
call fcn.10038410
mov ecx, dword [ebx + 0x18]
test ecx, ecx
mov edi, 1
je 0x100d973e
mov eax, dword [ecx]
mov edx, dword [eax + 8]
call edx
mov ecx, 0x102220c0
call fcn.10062a30
test al, al
je 0x100d9839
mov ecx, dword [ebx + 0x18]
mov eax, dword [ecx]
mov edx, dword [eax + 0x58]
call edx
mov eax, dword [ebx + 0x2c]
fld dword [eax + 0xc]
fadd st(0), st(0)
fdiv qword [0x101e99e0]
call fcn.10189ea0
test eax, eax
jle 0x100d981a
mov esi, eax
lea ecx, [ecx]
mov ecx, dword [ebx + 0x18]
mov eax, dword [ecx]
mov edx, dword [eax + 0x50]
call edx
sub esi, edi
jne 0x100d9730
mov ecx, dword [ebx + 0x24]
test ecx, ecx
je 0x100d9ba1
mov edx, dword [ecx]
mov eax, dword [edx + 8]
call eax
mov ecx, 0x10220f28
call fcn.10062a30
test al, al
mov ecx, dword [ebx + 0x24]
je 0x100d9bea
mov edx, dword [ecx]
mov eax, dword [edx + 0x4c]
call eax
test eax, eax
mov ecx, dword [ebx + 0x24]
mov dword [esp + 0x20], eax
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x28], 0
jle 0x100d9ba1
jmp 0x100d9790
mov ebx, dword [esp + 0x2c]
mov edx, dword [ebx]
mov ebp, dword [esp + 0x28]
mov eax, dword [edx + 0x34]
push ebp
mov ecx, ebx
call eax
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 8]
call eax
mov ecx, 0x102220c0
call fcn.10062a30
test al, al
je 0x100d9bc5
mov edx, dword [ebx]
mov eax, dword [edx + 0x34]
push ebp
mov ecx, ebx
call eax
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x58]
call eax
mov edi, dword [esp + 0x1c]
mov eax, ebp
shl eax, 4
add eax, dword [edi + 0x2c]
fld dword [eax + 8]
fchs
fstp dword [eax + 8]
fld dword [eax + 0xc]
fadd st(0), st(0)
fdiv qword [0x101e99e0]
call fcn.10189ea0
test eax, eax
jle 0x100d985e
mov esi, eax
lea ebx, [ebx]
mov edx, dword [ebx]
mov eax, dword [edx + 0x34]
push ebp
mov ecx, ebx
call eax
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x50]
call eax
sub esi, 1
jne 0x100d9800
jmp 0x100d987e
neg eax
test eax, eax
jle 0x100d973e
mov esi, eax
mov ecx, dword [ebx + 0x18]
mov eax, dword [ecx]
mov edx, dword [eax + 0x50]
call edx
sub esi, edi
jne 0x100d9826
jmp 0x100d973e
push str.float_vpf_PyramidSatFeature::mirrorX__
push str.__s__non_rectangle_feature_detected
lea eax, [esp + 0x28]
call fcn.100595b0
add esp, 8
push 0x102051a0
lea eax, [esp + 0x24]
push eax
call fcn.1017d044
neg eax
test eax, eax
jle 0x100d987e
mov esi, eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x34]
push ebp
mov ecx, ebx
call eax
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x54]
call eax
sub esi, 1
jne 0x100d9866
cmp dword [edi + 0x5c], ebp
jge 0x100d9895
mov ecx, dword [edi + 0x58]
mov edx, dword [ecx + 0x10]
add dword [edi + 0x5c], 1
mov dword [edi + 0x58], edx
cmp dword [edi + 0x5c], ebp
jl 0x100d9883
jle 0x100d98b1
or eax, 0xffffffff
lea ebx, [ebx]
mov ecx, dword [edi + 0x58]
mov edx, dword [ecx + 0xc]
add dword [edi + 0x5c], eax
mov dword [edi + 0x58], edx
cmp dword [edi + 0x5c], ebp
jg 0x100d98a0
mov eax, dword [edi + 0x58]
mov esi, dword [eax + 8]
push 1
push esi
lea eax, [esp + 0x3c]
push eax
call fcn.1000a970
xor edi, edi
mov dword [esp + 0x200], edi
cmp dword [esp + 0x78], edi
jle 0x100d9b66
jmp 0x100d98e0
mov eax, dword [esp + 0x74]
cmp eax, edi
mov ecx, dword [esp + 0x70]
jge 0x100d9902
lea esp, [esp]
mov ecx, dword [ecx + 0xc]
add eax, 1
cmp eax, edi
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], eax
jl 0x100d98f0
jle 0x100d9916
mov ecx, dword [ecx + 8]
sub eax, 1
cmp eax, edi
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], eax
jg 0x100d9904
cmp eax, edi
mov ebx, dword [ecx + 4]
jge 0x100d9932
lea ecx, [ecx]
mov ecx, dword [ecx + 0xc]
add eax, 1
cmp eax, edi
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], eax
jl 0x100d9920
jle 0x100d9946
mov ecx, dword [ecx + 8]
sub eax, 1
cmp eax, edi
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], eax
jg 0x100d9934
mov ebp, dword [ecx + 4]
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx]
mov eax, dword [edx + 0x2c]
call eax
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
fsub dword [ebx + 0x14]
mov ebx, 1
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fstp dword [ebp + 0x14]
cmp dword [esi + 0x40], edi
jge 0x100d9985
mov ecx, dword [esi + 0x3c]
mov edx, dword [ecx + 0xc]
add dword [esi + 0x40], ebx
mov dword [esi + 0x3c], edx
cmp dword [esi + 0x40], edi
jl 0x100d9974
or ecx, 0xffffffff
cmp dword [esi + 0x40], edi
jle 0x100d99a1
lea ecx, [ecx]
mov eax, dword [esi + 0x3c]
mov edx, dword [eax + 8]
add dword [esi + 0x40], ecx
mov dword [esi + 0x3c], edx
cmp dword [esi + 0x40], edi
jg 0x100d9990
mov eax, dword [esi + 0x3c]
mov eax, dword [eax + 4]
cmp dword [eax + 8], 0
jne 0x100d99ef
mov eax, dword [esp + 0x74]
cmp eax, edi
mov ecx, dword [esp + 0x70]
jge 0x100d99d1
lea esp, [esp]
mov ecx, dword [ecx + 0xc]
add eax, ebx
cmp eax, edi
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], eax
jl 0x100d99c0
jle 0x100d99e4
mov ecx, dword [ecx + 8]
sub eax, ebx
cmp eax, edi
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], eax
jg 0x100d99d3
mov ecx, dword [ecx + 4]
mov dword [ecx + 8], ebx
jmp 0x100d9b5a
cmp dword [esi + 0x40], edi
jge 0x100d9a05
mov eax, dword [esi + 0x3c]
mov edx, dword [eax + 0xc]
add dword [esi + 0x40], ebx
mov dword [esi + 0x3c], edx
cmp dword [esi + 0x40], edi
jl 0x100d99f4
jle 0x100d9a18
mov eax, dword [esi + 0x3c]
mov edx, dword [eax + 8]
add dword [esi + 0x40], ecx
mov dword [esi + 0x3c], edx
cmp dword [esi + 0x40], edi
jg 0x100d9a07
mov eax, dword [esi + 0x3c]
mov eax, dword [eax + 4]
cmp dword [eax + 8], ebx
jne 0x100d9a63
mov eax, dword [esp + 0x74]
cmp eax, edi
mov ecx, dword [esp + 0x70]
jge 0x100d9a41
nop
mov ecx, dword [ecx + 0xc]
add eax, ebx
cmp eax, edi
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], eax
jl 0x100d9a30
jle 0x100d9a54
mov ecx, dword [ecx + 8]
sub eax, ebx
cmp eax, edi
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], eax
jg 0x100d9a43
mov ecx, dword [ecx + 4]
mov dword [ecx + 8], 0
jmp 0x100d9b5a
cmp dword [esi + 0x40], edi
jge 0x100d9a81
jmp 0x100d9a70
mov eax, dword [esi + 0x3c]
mov edx, dword [eax + 0xc]
add dword [esi + 0x40], ebx
mov dword [esi + 0x3c], edx
cmp dword [esi + 0x40], edi
jl 0x100d9a70
jle 0x100d9a94
mov eax, dword [esi + 0x3c]
mov edx, dword [eax + 8]
add dword [esi + 0x40], ecx
mov dword [esi + 0x3c], edx
cmp dword [esi + 0x40], edi
jg 0x100d9a83
mov eax, dword [esi + 0x3c]
mov eax, dword [eax + 4]
mov edx, 0xf0
cmp dword [eax + 8], edx
jne 0x100d9ae0
mov eax, dword [esp + 0x74]
cmp eax, edi
mov ecx, dword [esp + 0x70]
jge 0x100d9ac1
mov ecx, dword [ecx + 0xc]
add eax, ebx
cmp eax, edi
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], eax
jl 0x100d9ab0
jle 0x100d9ad4
mov ecx, dword [ecx + 8]
sub eax, ebx
cmp eax, edi
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], eax
jg 0x100d9ac3
mov ecx, dword [ecx + 4]
mov dword [ecx + 8], 0xf1
jmp 0x100d9b5a
cmp dword [esi + 0x40], edi
jge 0x100d9af6
mov eax, dword [esi + 0x3c]
mov eax, dword [eax + 0xc]
add dword [esi + 0x40], ebx
mov dword [esi + 0x3c], eax
cmp dword [esi + 0x40], edi
jl 0x100d9ae5
jle 0x100d9b11
jmp 0x100d9b00
mov eax, dword [esi + 0x3c]
mov eax, dword [eax + 8]
add dword [esi + 0x40], ecx
mov dword [esi + 0x3c], eax
cmp dword [esi + 0x40], edi
jg 0x100d9b00
mov eax, dword [esi + 0x3c]
mov eax, dword [eax + 4]
cmp dword [eax + 8], 0xf1
jne 0x100d9b5a
mov eax, dword [esp + 0x74]
cmp eax, edi
mov ecx, dword [esp + 0x70]
jge 0x100d9b41
lea esp, [esp]
mov ecx, dword [ecx + 0xc]
add eax, ebx
cmp eax, edi
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], eax
jl 0x100d9b30
jle 0x100d9b54
mov ecx, dword [ecx + 8]
sub eax, ebx
cmp eax, edi
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], eax
jg 0x100d9b43
mov ecx, dword [ecx + 4]
mov dword [ecx + 8], edx
add edi, ebx
cmp edi, dword [esp + 0x78]
jl 0x100d98e0
lea ecx, [esp + 0x34]
push ecx
push esi
call fcn.1000abc0
lea ecx, [esp + 0x108]
mov dword [esp + 0x200], 0xffffffff
call fcn.1000ab00
mov eax, dword [esp + 0x28]
add eax, 1
cmp eax, dword [esp + 0x20]
mov dword [esp + 0x28], eax
jl 0x100d9790
mov ebx, dword [esp + 0x1c]
push ebx
mov byte [ebx + 0xd8], 0
call fcn.100d7d80
mov ecx, dword [esp + 0x1f8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
push str.float_vpf_PyramidSatFeature::mirrorX__
push str.__s__non_rectangle_feature_detected
lea eax, [esp + 0x28]
call fcn.100595b0
add esp, 8
push 0x102051a0
lea edx, [esp + 0x24]
push edx
call fcn.1017d044
mov eax, dword [ecx]
mov edx, dword [eax + 8]
call edx
mov ecx, 0x102220c0
call fcn.10062a30
test al, al
je 0x100d9f6d
mov ecx, dword [ebx + 0x24]
mov eax, dword [ecx]
mov edx, dword [eax + 0x58]
call edx
mov eax, dword [ebx + 0x2c]
fld dword [eax + 8]
fchs
fstp dword [eax + 8]
fld dword [eax + 0xc]
fadd st(0), st(0)
fdiv qword [0x101e99e0]
call fcn.10189ea0
test eax, eax
jl 0x100d9c40
jle 0x100d9c56
mov esi, eax
mov ecx, dword [ebx + 0x24]
mov eax, dword [ecx]
mov edx, dword [eax + 0x50]
call edx
sub esi, edi
jne 0x100d9c30
jmp 0x100d9c56
neg eax
test eax, eax
jle 0x100d9c56
mov esi, eax
mov ecx, dword [ebx + 0x24]
mov eax, dword [ecx]
mov edx, dword [eax + 0x54]
call edx
sub esi, edi
jne 0x100d9c48
cmp dword [ebx + 0x5c], 0
jge 0x100d9c72
lea esp, [esp]
mov eax, dword [ebx + 0x58]
mov ecx, dword [eax + 0x10]
add dword [ebx + 0x5c], edi
mov dword [ebx + 0x58], ecx
cmp dword [ebx + 0x5c], 0
jl 0x100d9c60
or eax, 0xffffffff
cmp dword [ebx + 0x5c], 0
jle 0x100d9c92
jmp 0x100d9c80
mov edx, dword [ebx + 0x58]
mov ecx, dword [edx + 0xc]
add dword [ebx + 0x5c], eax
mov dword [ebx + 0x58], ecx
cmp dword [ebx + 0x5c], 0
jg 0x100d9c80
mov eax, dword [ebx + 0x58]
mov esi, dword [eax + 8]
push edi
push esi
lea edx, [esp + 0x11c]
push edx
mov dword [esp + 0x24], esi
call fcn.1000a970
mov dword [esp + 0x200], edi
xor edi, edi
cmp dword [esp + 0x158], edi
jle 0x100d9f38
add esi, 0x38
jmp 0x100d9cd0
mov eax, dword [esp + 0x154]
cmp eax, edi
mov ecx, dword [esp + 0x150]
jge 0x100d9cfa
mov ecx, dword [ecx + 0xc]
add eax, 1
cmp eax, edi
mov dword [esp + 0x150], ecx
mov dword [esp + 0x154], eax
jl 0x100d9ce2
jle 0x100d9d18
lea esp, [esp]
mov ecx, dword [ecx + 8]
sub eax, 1
cmp eax, edi
mov dword [esp + 0x150], ecx
mov dword [esp + 0x154], eax
jg 0x100d9d00
cmp eax, edi
mov ebx, dword [ecx + 4]
jge 0x100d9d38
nop
mov ecx, dword [ecx + 0xc]
add eax, 1
cmp eax, edi
mov dword [esp + 0x150], ecx
mov dword [esp + 0x154], eax
jl 0x100d9d20
jle 0x100d9d58
lea ebx, [ebx]
mov ecx, dword [ecx + 8]
sub eax, 1
cmp eax, edi
mov dword [esp + 0x150], ecx
mov dword [esp + 0x154], eax
jg 0x100d9d40
mov ebp, dword [ecx + 4]
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx]
mov edx, dword [eax + 0x2c]
call edx
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
fsub dword [ebx + 0x14]
mov ebx, 1
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fstp dword [ebp + 0x14]
cmp dword [esi + 8], edi
jge 0x100d9d97
mov eax, dword [esi + 4]
mov ecx, dword [eax + 0xc]
add dword [esi + 8], ebx
mov dword [esi + 4], ecx
cmp dword [esi + 8], edi
jl 0x100d9d86
or ecx, 0xffffffff
cmp dword [esi + 8], edi
jle 0x100d9db1
nop
mov edx, dword [esi + 4]
mov eax, dword [edx + 8]
add dword [esi + 8], ecx
mov dword [esi + 4], eax
cmp dword [esi + 8], edi
jg 0x100d9da0
mov eax, dword [esi + 4]
mov eax, dword [eax + 4]
cmp dword [eax + 8], 0
jne 0x100d9e12
mov eax, dword [esp + 0x154]
cmp eax, edi
mov ecx, dword [esp + 0x150]
jge 0x100d9de7
nop
mov ecx, dword [ecx + 0xc]
add eax, ebx
cmp eax, edi
mov dword [esp + 0x150], ecx
mov dword [esp + 0x154], eax
jl 0x100d9dd0
jle 0x100d9e07
lea esp, [esp]
mov ecx, dword [ecx + 8]
sub eax, ebx
cmp eax, edi
mov dword [esp + 0x150], ecx
mov dword [esp + 0x154], eax
jg 0x100d9df0
mov ecx, dword [ecx + 4]
mov dword [ecx + 8], ebx
jmp 0x100d9f25
cmp dword [esi + 8], edi
jge 0x100d9e28
mov edx, dword [esi + 4]
mov eax, dword [edx + 0xc]
add dword [esi + 8], ebx
mov dword [esi + 4], eax
cmp dword [esi + 8], edi
jl 0x100d9e17
jle 0x100d9e41
lea ebx, [ebx]
mov edx, dword [esi + 4]
mov eax, dword [edx + 8]
add dword [esi + 8], ecx
mov dword [esi + 4], eax
cmp dword [esi + 8], edi
jg 0x100d9e30
mov eax, dword [esi + 4]
mov eax, dword [eax + 4]
cmp dword [eax + 8], ebx
jne 0x100d9ea6
mov eax, dword [esp + 0x154]
cmp eax, edi
mov ecx, dword [esp + 0x150]
jge 0x100d9e77
mov edi, edi
mov ecx, dword [ecx + 0xc]
add eax, ebx
cmp eax, edi
mov dword [esp + 0x150], ecx
mov dword [esp + 0x154], eax
jl 0x100d9e60
jle 0x100d9e97
lea esp, [esp]
mov ecx, dword [ecx + 8]
sub eax, ebx
cmp eax, edi
mov dword [esp + 0x150], ecx
mov dword [esp + 0x154], eax
jg 0x100d9e80
mov ecx, dword [ecx + 4]
mov dword [ecx + 8], 0
jmp 0x100d9f25
cmp dword [esi + 8], edi
jge 0x100d9ec1
jmp 0x100d9eb0
mov edx, dword [esi + 4]
mov eax, dword [edx + 0xc]
add dword [esi + 8], ebx
mov dword [esi + 4], eax
cmp dword [esi + 8], edi
jl 0x100d9eb0
jle 0x100d9ed4
mov edx, dword [esi + 4]
mov eax, dword [edx + 8]
add dword [esi + 8], ecx
mov dword [esi + 4], eax
cmp dword [esi + 8], edi
jg 0x100d9ec3
mov eax, dword [esi + 4]
mov eax, dword [eax + 4]
mov ebp, 0xf0
cmp dword [eax + 8], ebp
mov ecx, edi
jne 0x100d9efe
lea eax, [esp + 0x14c]
call fcn.1000ea10
mov eax, dword [eax + 4]
mov dword [eax + 8], 0xf1
jmp 0x100d9f25
mov eax, esi
call fcn.1000ea10
mov eax, dword [eax + 4]
cmp dword [eax + 8], 0xf1
jne 0x100d9f25
mov ecx, edi
lea eax, [esp + 0x14c]
call fcn.1000ea10
mov eax, dword [eax + 4]
mov dword [eax + 8], ebp
add edi, ebx
cmp edi, dword [esp + 0x158]
jl 0x100d9cd0
mov esi, dword [esp + 0x18]
lea ecx, [esp + 0x114]
push ecx
push esi
call fcn.1000abc0
lea ecx, [esp + 0x1e8]
mov dword [esp + 0x200], 0xffffffff
call fcn.1000ab00
mov dword [esp + method.ert_RefCounter.virtual_0], vtable.ert_RefCounter.0
jmp 0x100d9b9d
push str.float_vpf_PyramidSatFeature::mirrorX__
push str.__s__non_rectangle_feature_detected
lea eax, [esp + 0x34]
call fcn.100595b0
add esp, 8
push 0x102051a0
lea edx, [esp + 0x30]
push edx
call fcn.1017d044
int3