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

Disassembly:
sub esp, 0x78
cmp dword [0x101b32bc], 0
push ebx
push ebp
push esi
push edi
je 0x10003a7b
or dword [esp + 0x14], 0xffffffff
xorps xmm1, xmm1
mov ebp, dword [sym.imp.USER32.dll_GetSystemMetrics]
xor edi, edi
mov esi, dword [0x10171a30]
movss dword [esp + 0x10], xmm1
mov eax, dword [0x101b32c0]
cmp dword [eax + edi*4 + 0xfd6], 1
jne 0x100036ce
mov eax, dword [eax + edi*4 + 0x26]
test eax, eax
je 0x100036ce
mov eax, dword [eax + 8]
test eax, eax
je 0x100036ce
cmp dword [eax + 4], 0
je 0x100036ce
lea eax, [esp + 0x34]
push eax
push edi
call fcn.10047d7d
movss xmm1, dword [esp + 0x44]
lea eax, [esp + 0x30]
addss xmm1, dword [0x10096cc0]
movss xmm0, dword [esp + 0x3c]
push eax
movss dword [esp + 0x58], xmm0
lea eax, [esp + 0x58]
movss xmm0, dword [esp + 0x44]
push eax
movss dword [esp + 0x4c], xmm1
movss dword [esp + 0x60], xmm0
movss dword [esp + 0x64], xmm1
call fcn.10003065
add esp, 0x10
push 1
call ebp
push 1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x10096cc4]
subss xmm0, dword [esp + 0x30]
movss dword [esp + 0x1c], xmm0
call ebp
push 0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x10096cc4]
subss xmm0, dword [esp + 0x30]
mulss xmm0, dword [esp + 0x1c]
movss dword [esp + 0x20], xmm0
call ebp
push 0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x10096ccc]
subss xmm0, dword [esp + 0x2c]
movss dword [esp + 0x1c], xmm0
call ebp
movss xmm1, dword [esp + 0x10]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x10096ccc]
subss xmm0, dword [esp + 0x28]
mulss xmm0, dword [esp + 0x18]
addss xmm0, dword [esp + 0x1c]
sqrtss xmm0, xmm0
cvtps2pd xmm2, xmm0
cvtps2pd xmm0, xmm1
movsd qword [esp + 0x20], xmm2
comisd xmm2, xmm0
jbe 0x10003326
ucomiss xmm1, dword [0x10096cb4]
lahf
test ah, 0x44
jp 0x100036c8
mov esi, dword [0x10171a30]
cmp dword [esi + edi*4 + 0x1a559], 0
jne 0x100036ce
cmp byte [esi + 0x1a12a], 1
jne 0x10003359
mov eax, dword [0x101b32c0]
mov eax, dword [eax + edi*4 + 0x26]
mov eax, dword [eax + 8]
cmp byte [eax + 0x1a], 0x13
je 0x100036ce
cmp byte [esi + 0x1a51a], 0
je 0x10003581
mov eax, dword [0x101b32c0]
mov ecx, dword [0x101c74dc]
mov eax, dword [eax + edi*4 + 0x26]
mov eax, dword [eax + 8]
mov eax, dword [eax + 4]
mov esi, dword [eax + 0x2a4]
mov eax, dword [ecx]
call dword [eax]
push esi
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0x64]
mov ebx, eax
push str.CS_DEAD_GUY
mov eax, dword [ebx + 4]
mov ecx, dword [eax + 4]
add ecx, 4
add ecx, ebx
mov eax, dword [ecx]
call dword [eax + 0x90]
test al, al
je 0x100033be
mov esi, dword [0x10171a30]
cmp byte [esi + 0x1a51a], 0
jne 0x100036ce
mov eax, dword [ebx + 4]
push str.CAR_DEAD_LHS
mov ecx, dword [eax + 4]
add ecx, 4
add ecx, ebx
mov eax, dword [ecx]
call dword [eax + 0x90]
test al, al
je 0x100033ed
mov esi, dword [0x10171a30]
cmp byte [esi + 0x1a51a], 0
jne 0x100036ce
mov eax, dword [ebx + 4]
push str.CAR_DEAD_RHS
mov ecx, dword [eax + 4]
add ecx, 4
add ecx, ebx
mov eax, dword [ecx]
call dword [eax + 0x90]
mov esi, dword [0x10171a30]
test al, al
je 0x1000341c
cmp byte [esi + 0x1a51a], 0
jne 0x100036ce
mov eax, dword [0x101b32c0]
mov ecx, 0x6a5
mov eax, dword [eax + edi*4 + 0x26]
mov eax, dword [eax + 8]
movzx eax, word [eax + 0x7c]
cmp ax, cx
jne 0x10003443
cmp byte [esi + 0x1a51a], 0
jne 0x100036ce
mov ecx, 0x3fa
cmp ax, cx
jne 0x1000345a
cmp byte [esi + 0x1a51a], 0
jne 0x100036ce
mov ecx, 0x3fb
cmp ax, cx
jne 0x10003471
cmp byte [esi + 0x1a51a], 0
jne 0x100036ce
cmp byte [esi + 0x6e6a], 0
je 0x1000357b
push edi
call fcn.10047e7c
pop ecx
cmp eax, 0x11
jne 0x100034f2
mov eax, dword [0x101b32c0]
mov eax, dword [eax + edi*4 + 0x26]
mov eax, dword [eax + 8]
mov al, byte [eax + 0x60]
test al, al
je 0x100034dd
cmp al, 1
je 0x100034dd
cmp al, 2
je 0x100034dd
cmp al, 3
je 0x100034dd
cmp al, 4
je 0x100034dd
cmp al, 5
je 0x100034dd
cmp al, 6
je 0x100034dd
cmp al, 7
je 0x100034dd
cmp al, 8
je 0x100034dd
cmp al, 0xa
je 0x100034dd
cmp al, 0xb
je 0x100034dd
cmp al, 0xc
je 0x100034dd
cmp al, 0xd
je 0x100034dd
cmp al, 0xe
je 0x100034dd
cmp al, 0xf
je 0x100034dd
cmp al, 0x2b
je 0x100034dd
cmp al, 0x2e
jne 0x100034f2
mov esi, dword [0x10171a30]
cmp byte [esi + 0x6e6a], 0
jne 0x100036ce
jmp 0x100034f8
mov esi, dword [0x10171a30]
cmp byte [esi + 0x6e6a], 0
je 0x1000357b
push edi
call fcn.10047e7c
pop ecx
cmp eax, 0x12
jne 0x10003575
mov eax, dword [0x101b32c0]
mov eax, dword [eax + edi*4 + 0x26]
mov eax, dword [eax + 8]
mov al, byte [eax + 0x27]
test al, al
je 0x10003560
cmp al, 1
je 0x10003560
cmp al, 2
je 0x10003560
cmp al, 3
je 0x10003560
cmp al, 4
je 0x10003560
cmp al, 5
je 0x10003560
cmp al, 6
je 0x10003560
cmp al, 7
je 0x10003560
cmp al, 8
je 0x10003560
cmp al, 0xa
je 0x10003560
cmp al, 0xb
je 0x10003560
cmp al, 0xc
je 0x10003560
cmp al, 0xd
je 0x10003560
cmp al, 0xe
je 0x10003560
cmp al, 0xf
je 0x10003560
cmp al, 0x2b
je 0x10003560
cmp al, 0x2e
jne 0x10003575
mov esi, dword [0x10171a30]
cmp byte [esi + 0x6e6a], 0
jne 0x100036ce
jmp 0x1000357b
mov esi, dword [0x10171a30]
movsd xmm2, qword [esp + 0x20]
mov eax, dword [0x101b32bc]
mov eax, dword [eax + 0x3de]
mov eax, dword [eax + 8]
mov eax, dword [eax + edi*4 + 0x26]
mov eax, dword [eax + 8]
cmp dword [eax + 0x1d1], 2
je 0x100036ce
cmp byte [esi + 0x15623], 0
cvtpd2ps xmm0, xmm2
mov dword [esp + 0x14], edi
movss dword [esp + 0x10], xmm0
je 0x100036ce
mov ebx, dword [esi + 0x1a539]
cmp ebx, 0xffffffff
je 0x100036ce
movzx eax, bx
push eax
call fcn.100041cd
pop ecx
test al, al
je 0x100036ce
lea eax, [esp + 0x7c]
push eax
mov eax, dword [0x101b32c0]
mov eax, dword [eax + ebx*4 + 0x26]
mov eax, dword [eax + 8]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x2a4]
mov eax, dword [eax + 0x14]
add eax, 0x30
push eax
call fcn.10046916
mov eax, dword [0x101b32c0]
pop ecx
pop ecx
mov eax, dword [eax + 0x1e]
cmp byte [eax + 0x18d], 0x22
mov eax, dword [0x101baff0]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
je 0x10003671
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x10096d10]
mov eax, dword [0x10171a30]
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [0x10096ccc]
movss dword [eax + 0x1a545], xmm0
mov eax, dword [0x101baff4]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x10096d10]
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [0x10096cc4]
jmp 0x100036bb
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x10096d10]
mov eax, dword [0x10171a30]
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [0x10096cc8]
movss dword [eax + 0x1a545], xmm0
mov eax, dword [0x101baff4]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x10096d10]
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [0x10096cc8]
mov eax, dword [0x10171a30]
movss dword [eax + 0x1a549], xmm0
mov esi, dword [0x10171a30]
inc edi
cmp edi, 0x3ec
jl 0x100031ee
cmp byte [esi + 0x1a51f], 0
je 0x10003a75
mov eax, dword [esi + 0x1a539]
cmp eax, 0xffffffff
je 0x10003a75
push eax
call fcn.10047c35
mov esi, eax
pop ecx
test esi, esi
je 0x10003a7b
mov ecx, dword [0x101c74dc]
mov eax, dword [ecx]
call dword [eax]
push esi
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0x64]
mov ebp, eax
test ebp, ebp
je 0x10003a7b
mov ebx, dword [esp + 0x20]
xor edi, edi
inc edi
mov esi, 0xffff0000
cmp edi, 8
jbe 0x1000375f
cmp edi, 0x15
jb 0x1000373f
cmp edi, 0x1a
jbe 0x1000375f
cmp edi, 0x1f
jb 0x10003749
cmp edi, 0x24
jbe 0x1000375f
cmp edi, 0x29
jb 0x10003753
cmp edi, 0x2c
jbe 0x1000375f
lea eax, [edi - 0x33]
cmp eax, 3
ja 0x10003952
mov eax, dword [ebp]
lea ecx, [esp + 0x28]
and dword [esp + 0x28], 0
and dword [esp + 0x2c], 0
and dword [esp + 0x30], 0
and dword [esp + 0x34], 0
and dword [esp + 0x38], 0
and dword [esp + 0x3c], 0
push ecx
push 8
mov ecx, ebp
call dword [eax + 0x74]
mov eax, dword [ebp]
lea ecx, [esp + 0x34]
push ecx
push 0x2c
mov ecx, ebp
call dword [eax + 0x74]
movss xmm0, dword [esp + 0x28]
lea eax, [esp + 0x70]
movss dword [esp + 0x58], xmm0
movss xmm0, dword [esp + 0x2c]
movss dword [esp + 0x5c], xmm0
movss xmm0, dword [esp + 0x30]
movss dword [esp + 0x60], xmm0
movss xmm0, dword [esp + 0x34]
movss dword [esp + 0x64], xmm0
movss xmm0, dword [esp + 0x38]
push eax
movss dword [esp + 0x6c], xmm0
lea eax, [esp + 0x5c]
movss xmm0, dword [esp + 0x40]
push eax
movss dword [esp + 0x74], xmm0
call fcn.10003065
lea eax, [esp + 0x84]
push eax
lea eax, [esp + 0x70]
push eax
call fcn.10003065
movss xmm0, dword [0x10096cd4]
add esp, 0x10
comiss xmm0, dword [esp + 0x78]
ja 0x10003952
comiss xmm0, dword [esp + 0x84]
ja 0x10003952
movss xmm3, dword [esp + 0x74]
movss xmm4, dword [esp + 0x70]
movaps xmm0, xmm3
subss xmm0, dword [esp + 0x80]
mov eax, dword [0x10171a30]
movss dword [esp + 0x10], xmm3
movss dword [esp + 0x20], xmm4
cvtps2pd xmm2, xmm0
mov eax, dword [eax + 0x1ee88]
movaps xmm0, xmm4
mulsd xmm2, xmm2
subss xmm0, dword [esp + 0x7c]
cvtps2pd xmm0, xmm0
mulsd xmm0, xmm0
cvtpd2ps xmm1, xmm0
cvtpd2ps xmm0, xmm2
addss xmm1, xmm0
xorps xmm0, xmm0
sqrtss xmm0, xmm1
mulss xmm0, dword [0x10096cd8]
movss dword [esp + 0x1c], xmm0
movaps xmm1, xmm0
mulss xmm1, dword [0x10096cc8]
movss dword [esp + 0x18], xmm1
test eax, eax
jne 0x100038a8
mov ebx, esi
jmp 0x10003912
cmp eax, 1
jne 0x100038b2
or ebx, 0xffffffff
jmp 0x10003912
cmp eax, 2
jne 0x100038be
mov ebx, 0xff0080ff
jmp 0x10003912
cmp eax, 3
jne 0x100038ca
mov ebx, 0xff00ff00
jmp 0x10003912
cmp eax, 4
jne 0x100038d6
mov ebx, 0xff0000ff
jmp 0x10003912
cmp eax, 5
jne 0x100038e2
mov ebx, 0xffff00ff
jmp 0x10003912
cmp eax, 6
jne 0x100038ee
mov ebx, 0xffffff00
jmp 0x10003912
cmp eax, 7
jne 0x10003912
call fcn.10007f63
movss xmm0, dword [esp + 0x1c]
mov ebx, eax
movss xmm1, dword [esp + 0x18]
movss xmm3, dword [esp + 0x10]
movss xmm4, dword [esp + 0x20]
mov ecx, dword [0x101bb058]
push 0
push ebx
sub esp, 0x10
movss dword [esp + 0xc], xmm0
mulss xmm0, dword [0x10096cbc]
movss dword [esp + 8], xmm1
mulss xmm1, dword [0x10096cc8]
subss xmm3, xmm0
subss xmm4, xmm1
movss dword [esp + 4], xmm3
movss dword [esp], xmm4
call fcn.10048ebb
inc edi
cmp edi, 0x36
jle 0x10003730
mov edi, dword [0x10171a30]
and dword [esp + 0x4c], 0
and dword [esp + 0x50], 0
and dword [esp + 0x54], 0
and dword [esp + 0x40], 0
and dword [esp + 0x44], 0
and dword [esp + 0x48], 0
mov eax, dword [edi + 0x1ee88]
test eax, eax
je 0x100039e0
mov esi, dword [esp + 0x20]
cmp eax, 1
jne 0x10003998
or esi, 0xffffffff
jmp 0x100039e0
cmp eax, 2
jne 0x100039a4
mov esi, 0xff0080ff
jmp 0x100039e0
cmp eax, 3
jne 0x100039b0
mov esi, 0xff00ff00
jmp 0x100039e0
cmp eax, 4
jne 0x100039bc
mov esi, 0xff0000ff
jmp 0x100039e0
cmp eax, 5
jne 0x100039c8
mov esi, 0xffff00ff
jmp 0x100039e0
cmp eax, 6
jne 0x100039d4
mov esi, 0xffffff00
jmp 0x100039e0
cmp eax, 7
jne 0x100039e0
call fcn.10007f63
mov esi, eax
cmp byte [edi + 0x1a527], 0
je 0x10003a50
mov ecx, dword [0x101c74e4]
lea edx, [esp + 0x4c]
push edx
push 1
mov eax, dword [ecx]
call dword [eax + 0x74]
mov eax, dword [ebp]
lea ecx, [esp + 0x40]
push ecx
push 1
mov ecx, ebp
call dword [eax + 0x74]
push esi
sub esp, 0xc
lea esi, [esp + 0x50]
mov edi, esp
lea eax, [esp + 0x8c]
push eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.1002ac90
add esp, 0x10
lea esi, [esp + 0x50]
push eax
sub esp, 0xc
lea eax, [esp + 0x84]
mov edi, esp
push eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.1002ac90
mov ecx, dword [0x101bb058]
add esp, 0x10
push eax
call fcn.10049443
mov ecx, dword [0x101bb058]
push 0
push 0x1c
sub esp, 0x10
and dword [esp + 0xc], 0
and dword [esp + 8], 0
and dword [esp + 4], 0
and dword [esp], 0
call fcn.10048ebb
mov eax, dword [esp + 0x14]
jmp 0x10003a7e
or eax, 0xffffffff
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret