Function at 0x1006e871
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1011e4d7
mov eax, dword fs:[0]
push eax
mov eax, 0x1378
call fcn.100ebdb0
mov eax, dword [0x101c7100]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, dword [ebp + 8]
mov esi, dword [ebp + 0xc]
movzx eax, byte [edi]
add eax, 0xfffffff4
cmp eax, 0x89
ja case.0x1006e72f.14
movzx eax, byte [eax + 0x1006f1f4]
jmp dword [eax*4 + 0x1006f1c8]
lea eax, [ebp - 0x1358]
mov ecx, esi
push eax
call fcn.1006b590
lea eax, [ebp - 0x137c]
mov ecx, esi
push eax
call fcn.1006b590
lea eax, [ebp - 0x1380]
mov ecx, esi
push eax
call fcn.1006b590
lea eax, [ebp - 0x1360]
mov ecx, esi
push eax
call fcn.1006b590
lea eax, [ebp - 0x136c]
mov ecx, esi
push eax
call fcn.1006b590
lea eax, [ebp - 0x1384]
mov ecx, esi
push eax
call fcn.1006b590
mov eax, dword [ebp - 0x1358]
test eax, eax
js case.0x1006e72f.14
cmp eax, 0x1000
jg case.0x1006e72f.14
sub esp, 0xc
mov dword [ebp - 0x1338], 0
mov esi, 0x420b10
mov dword [ebp - 0x1334], 0
lea ecx, [ebp - 0x132c]
mov dword [ebp - 0x1330], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call esi
movss xmm0, dword [ebp - 0x1384]
lea ecx, [ebp - 0x1378]
mov eax, dword [ebp - 0x137c]
sub esp, 0xc
mov dword [ebp - 0x1338], eax
mov eax, dword [ebp - 0x1380]
mov dword [ebp - 0x1334], eax
movss dword [esp + 8], xmm0
movss xmm0, dword [ebp - 0x136c]
movss dword [esp + 4], xmm0
movss xmm0, dword [ebp - 0x1360]
movss dword [esp], xmm0
call esi
lea eax, [ebp - 0x1378]
push eax
mov eax, 0x411b50
lea ecx, [ebp - 0x132c]
call eax
lea eax, [ebp - 0x1338]
mov dword [ebp - 0x1330], 0
push eax
lea eax, [ebp - 0x1358]
push eax
lea eax, [ebp - 0x1364]
push eax
call fcn.1006f5b0
jmp case.0x1006e72f.14
lea eax, [ebp - 0x1358]
mov ecx, esi
push eax
call fcn.1006b590
movzx eax, byte [ebp - 0x1358]
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
movzx eax, byte [ebp - 0x1357]
xor ecx, eax
movzx eax, byte [ebp - 0x1356]
imul ecx, ecx, 0x1000193
xor ecx, eax
movzx eax, byte [ebp - 0x1355]
imul ecx, ecx, 0x1000193
xor ecx, eax
imul eax, ecx, 0x1000193
push eax
lea eax, [ebp - 0x1358]
push eax
lea eax, [ebp - 0x1364]
push eax
call fcn.1006fba0
mov edi, dword [0x10828864]
mov ecx, dword [eax + 4]
test ecx, ecx
mov eax, edi
cmovne eax, ecx
cmp eax, edi
je case.0x1006e72f.14
movzx ecx, byte [eax + 8]
xor ecx, 0x811c9dc5
mov esi, dword [0x1082886c]
imul edx, ecx, 0x1000193
movzx ecx, byte [eax + 9]
xor edx, ecx
movzx ecx, byte [eax + 0xa]
imul edx, edx, 0x1000193
xor edx, ecx
movzx ecx, byte [eax + 0xb]
imul edx, edx, 0x1000193
xor edx, ecx
imul edx, edx, 0x1000193
and edx, dword [0x10828878]
mov ecx, dword [esi + edx*8]
cmp dword [esi + edx*8 + 4], eax
jne 0x1006e949
cmp ecx, eax
jne 0x1006e940
mov dword [esi + edx*8], edi
mov dword [esi + edx*8 + 4], edi
jmp 0x1006e952
mov edi, dword [eax + 4]
mov dword [esi + edx*8 + 4], edi
jmp 0x1006e952
cmp ecx, eax
jne 0x1006e952
mov ecx, dword [eax]
mov dword [esi + edx*8], ecx
mov edx, dword [eax]
dec dword [0x10828868]
mov ecx, dword [eax + 4]
push 0x24
push eax
mov dword [ecx], edx
mov ecx, dword [eax + 4]
mov dword [edx + 4], ecx
call fcn.100eb0f7
add esp, 8
jmp case.0x1006e72f.14
cmp byte [0x1020d675], 0
je case.0x1006e72f.14
cmp byte [0x1020d67d], 0
je case.0x1006e72f.14
cmp byte [0x101ce08b], 0
jne case.0x1006e72f.14
lea eax, [ebp - 0x1358]
mov ecx, esi
push eax
call fcn.1006b5f0
push 1
push 8
lea eax, [ebp - 0x1359]
mov ecx, esi
push eax
call fcn.100ba600
push 1
push 8
lea eax, [ebp - 0x1351]
mov ecx, esi
push eax
call fcn.100ba600
mov al, byte [ebp - 0x1351]
test al, al
je 0x1006e9f0
movzx eax, al
mov ecx, esi
push eax
lea eax, [ebp - 0x114]
push eax
call fcn.100ba390
mov al, byte [ebp - 0x1351]
movzx edi, al
mov ecx, esi
push 1
push 8
lea eax, [ebp - 0x1351]
push eax
mov byte [ebp + edi - 0x114], 0
call fcn.100ba600
mov al, byte [ebp - 0x1351]
test al, al
je 0x1006ea2f
movzx eax, al
mov ecx, esi
push eax
lea eax, [ebp - 0x218]
push eax
call fcn.100ba390
mov al, byte [ebp - 0x1351]
movzx eax, al
mov ecx, esi
push 1
mov dword [ebp - 0x1360], eax
push 8
mov byte [ebp + eax - 0x218], 0
lea eax, [ebp - 0x1351]
push eax
call fcn.100ba600
mov al, byte [ebp - 0x1351]
test al, al
je 0x1006ea74
movzx eax, al
mov ecx, esi
push eax
lea eax, [ebp - 0x31c]
push eax
call fcn.100ba390
mov al, byte [ebp - 0x1351]
movzx eax, al
push ecx
push esi
mov dword [ebp - 0x136c], eax
mov byte [ebp + eax - 0x31c], 0
lea eax, [ebp - 0x1320]
push ecx
mov ecx, dword [0x101ef5d4]
push eax
call fcn.100bba60
dec edi
xor esi, esi
test edi, edi
jle 0x1006eac2
mov cl, byte [ebp + esi - 0x114]
mov edx, 0xffffffc1
cmp cl, 0x80
movzx eax, cl
cmovne edx, eax
mov byte [ebp + esi - 0x114], dl
inc esi
cmp esi, edi
jl 0x1006eaa1
mov edi, dword [ebp - 0x1360]
xor esi, esi
dec edi
test edi, edi
jle 0x1006eaf1
nop
mov cl, byte [ebp + esi - 0x218]
mov edx, 0xffffffc1
cmp cl, 0x80
movzx eax, cl
cmovne edx, eax
mov byte [ebp + esi - 0x218], dl
inc esi
cmp esi, edi
jl 0x1006ead0
mov edi, dword [ebp - 0x136c]
xor esi, esi
dec edi
test edi, edi
jle 0x1006eb21
nop
mov cl, byte [ebp + esi - 0x31c]
mov edx, 0xffffffc1
cmp cl, 0x80
movzx eax, cl
cmovne edx, eax
mov byte [ebp + esi - 0x31c], dl
inc esi
cmp esi, edi
jl 0x1006eb00
xor eax, eax
mov cl, byte [ebp + eax - 0x1320]
test cl, cl
je 0x1006eb43
cmp cl, 0x80
jne 0x1006eb3b
mov byte [ebp + eax - 0x1320], 0xc1
inc eax
cmp eax, 0x1000
jl 0x1006eb23
xor dl, dl
mov ecx, str.cef:showPlayerDialog
call fcn.100323a0
movzx ecx, word [ebp - 0x1358]
call fcn.10032790
movzx ecx, byte [ebp - 0x1359]
call fcn.10032790
lea ecx, [ebp - 0x114]
call fcn.10032660
lea ecx, [ebp - 0x1320]
call fcn.10032660
lea ecx, [ebp - 0x218]
call fcn.10032660
lea ecx, [ebp - 0x31c]
call fcn.10032660
mov byte [0x1020d67b], 0
xor al, al
jmp 0x1006f170
lea eax, [ebp - 0x1360]
mov ecx, esi
push eax
call fcn.1006b590
lea eax, [ebp - 0x136c]
mov ecx, esi
push eax
call fcn.1006b590
push 0xffffffffffffffff
mov eax, 0x56e210
call eax
mov esi, dword [ebp - 0x1360]
add esp, 4
mov edi, eax
mov eax, 0x5e3b60
mov ecx, edi
push esi
call eax
mov byte [ebp - 0x1360], al
mov eax, 0x743c60
push dword [ebp - 0x1360]
push esi
call eax
add esp, 8
test eax, eax
je 0x1006eb9a
mov ecx, dword [eax + 0x14]
test ecx, ecx
je 0x1006ec29
cmp ecx, 1
je 0x1006ec29
cmp ecx, 0xa
je 0x1006ec29
cmp ecx, 0xb
je 0x1006ec29
push ecx
push dword [ebp - 0x136c]
mov edx, esi
mov ecx, edi
push dword [eax + 0xc]
call fcn.1006b6d0
add esp, 0xc
xor al, al
jmp 0x1006f170
push ecx
push 1
push dword [eax + 0xc]
mov edx, esi
mov ecx, edi
call fcn.1006b6d0
add esp, 0xc
xor al, al
jmp 0x1006f170
mov eax, dword fs:[0x2c]
mov ecx, dword [0x101e98fc]
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x1082bae4]
cmp eax, dword [ecx + 4]
jg 0x1006f18d
lea eax, [ebp - 0x137c]
mov ecx, esi
push eax
call fcn.1006b590
lea eax, [ebp - 0x1368]
mov ecx, esi
push eax
call fcn.1006b590
lea eax, [ebp - 0x1364]
mov ecx, esi
push eax
call fcn.1006b590
lea eax, [ebp - 0x1360]
mov ecx, esi
push eax
call fcn.1006b590
lea eax, [ebp - 0x1358]
mov ecx, esi
push eax
call fcn.1006b590
movzx esi, word [0x1082985c]
lea eax, [esi + 1]
cmp eax, 0x3e8
jb 0x1006ed1a
movss xmm0, dword [ebp - 0x1358]
sub esp, 0x20
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x18], xmm0
movss xmm0, dword [ebp - 0x1360]
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x10], xmm0
movss xmm0, dword [ebp - 0x1364]
cvtps2pd xmm0, xmm0
movsd qword [esp + 8], xmm0
movss xmm0, dword [ebp - 0x1368]
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
push dword [ebp - 0x137c]
push esi
push str._1__Big_count_value_for_RemoveBuilding_struct__RemoveBuilding__d_:__d___f__f__f___f_
call fcn.1005b7f0
add esp, 0x2c
xor al, al
jmp 0x1006f170
mov edi, dword [ebp - 0x137c]
xor ecx, ecx
test esi, esi
je 0x1006eda0
movss xmm2, dword [ebp - 0x1360]
mov edx, 0x1082da44
movss xmm3, dword [ebp - 0x1364]
movss xmm4, dword [ebp - 0x1368]
movss xmm1, dword [ebp - 0x1358]
nop dword [eax + eax]
cmp dword [ecx*4 + 0x1082baf0], edi
jne 0x1006ed98
movss xmm0, dword [edx - 4]
ucomiss xmm0, xmm4
lahf
test ah, 0x44
jp 0x1006ed98
movss xmm0, dword [edx]
ucomiss xmm0, xmm3
lahf
test ah, 0x44
jp 0x1006ed98
movss xmm0, dword [edx + 4]
ucomiss xmm0, xmm2
lahf
test ah, 0x44
jp 0x1006ed98
movss xmm0, dword [ecx*4 + 0x1082ca90]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x1006eb9a
inc ecx
add edx, 0xc
cmp ecx, esi
jl 0x1006ed50
lea eax, [ebp - 0x1368]
mov dword [esi*4 + 0x1082baf0], edi
push eax
lea eax, [esi + esi*2]
lea ecx, [eax*4 + 0x1082da40]
mov eax, 0x411b50
call eax
mov cx, word [0x1082985c]
movss xmm0, dword [ebp - 0x1358]
movzx eax, cx
inc cx
mov word [0x1082985c], cx
movss dword [eax*4 + 0x1082ca90], xmm0
jmp case.0x1006e72f.14
sub esp, 0xc
lea ecx, [ebp - 0x1378]
mov eax, 0x420b10
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call eax
lea eax, [ebp - 0x1378]
mov ecx, esi
push eax
call fcn.1006b590
lea eax, [ebp - 0x1374]
mov ecx, esi
push eax
call fcn.1006b590
lea eax, [ebp - 0x1370]
mov ecx, esi
push eax
call fcn.1006b590
fld dword [ebp - 0x1378]
fstp dword [ebp - 0x1360]
movss xmm0, dword [ebp - 0x1360]
ucomiss xmm0, xmm0
setp al
movzx eax, al
cmp al, 1
je 0x1006eb9a
fld dword [ebp - 0x1374]
fstp dword [ebp - 0x1360]
movss xmm0, dword [ebp - 0x1360]
ucomiss xmm0, xmm0
setp al
movzx eax, al
cmp al, 1
je 0x1006eb9a
cmp byte [edi], 0xc
jne case.0x1006e72f.14
fld dword [ebp - 0x1370]
fstp dword [ebp - 0x1360]
movss xmm0, dword [ebp - 0x1360]
ucomiss xmm0, xmm0
setp al
movzx eax, al
cmp al, 1
je 0x1006eb9a
jmp case.0x1006e72f.14
sub esp, 0xc
lea ecx, [ebp - 0x1378]
mov eax, 0x420b10
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call eax
push 1
push 8
lea eax, [ebp - 0x1351]
mov ecx, esi
push eax
call fcn.100ba600
mov al, byte [ebp - 0x1351]
test al, al
je 0x1006ef11
movzx eax, al
mov ecx, esi
push eax
lea eax, [ebp - 0x114]
push eax
call fcn.100ba390
mov al, byte [ebp - 0x1351]
movzx eax, al
mov ecx, esi
mov byte [ebp + eax - 0x114], 0
lea eax, [ebp - 0x1378]
push eax
call fcn.1006b590
lea eax, [ebp - 0x1374]
mov ecx, esi
push eax
call fcn.1006b590
lea eax, [ebp - 0x1370]
mov ecx, esi
push eax
call fcn.1006b590
lea eax, [ebp - 0x1360]
mov ecx, esi
push eax
call fcn.1006b590
push 1
push 8
lea eax, [ebp - 0x1359]
mov ecx, esi
push eax
call fcn.100ba600
mov al, byte [0xba6798]
test al, al
je 0x1006eb9a
call fcn.100d52e0
mov esi, dword [eax]
test esi, esi
je 0x1006f088
cmp dword [0x101eed28], 0
jne 0x1006f088
xorps xmm0, xmm0
mov dword [ebp - 0x1328], 0
lea ecx, [ebp - 0x114]
mov dword [ebp - 0x1324], 0
movups xmmword [ebp - 0x1338], xmm0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1006efb6
sub ecx, edx
lea eax, [ebp - 0x114]
push ecx
push eax
lea ecx, [ebp - 0x1338]
call fcn.10030ed0
lea eax, [ebp - 0x1338]
mov dword [ebp - 4], 1
push eax
mov edx, 0x101a7710
lea ecx, [ebp - 0x1350]
call fcn.10048c50
add esp, 4
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0x1324]
cmp ecx, 0xf
jbe 0x1006f031
mov edx, dword [ebp - 0x1338]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1006f027
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1006f1c0
push ecx
push edx
call fcn.100eb0f7
add esp, 8
cmp dword [ebp - 0x133c], 0xf
lea eax, [ebp - 0x1350]
push 0
cmova eax, dword [ebp - 0x1350]
mov ecx, esi
push 0xff88aa62
push 0x10135419
push eax
push 4
mov dword [ebp - 0x1328], 0
mov dword [ebp - 0x1324], 0xf
mov byte [ebp - 0x1338], 0
call fcn.100d52b0
lea ecx, [ebp - 0x1350]
mov dword [ebp - 4], 0xffffffff
call fcn.100385e0
lea ecx, [ebp - 0x114]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1006f091
sub ecx, edx
lea eax, [ebp - 0x114]
push ecx
push eax
mov ecx, 0x101ce270
call fcn.100389e0
lea eax, [ebp - 0x1378]
mov ecx, 0x1029ff64
push eax
mov eax, 0x411b50
call eax
cmp byte [ebp - 0x1359], 0
movss xmm0, dword [ebp - 0x1360]
setne byte [0x101ea39f]
movss dword [0x101eed40], xmm0
mov byte [0x101ea39e], 1
xor al, al
jmp 0x1006f170
push 0
push 0x10135419
mov ecx, 0x101ce270
call fcn.100389e0
sub esp, 0xc
lea ecx, [ebp - 0x1378]
mov eax, 0x420b10
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call eax
lea eax, [ebp - 0x1378]
mov ecx, 0x1029ff64
push eax
mov eax, 0x411b50
call eax
mov dword [0x101eed40], 0
xor al, al
mov byte [0x101ea39f], 0
mov byte [0x101ea39e], 1
jmp 0x1006f170
lea eax, [ebp - 0x1358]
mov ecx, esi
push eax
call fcn.1006b5f0
lea eax, [ebp - 0x1358]
mov ecx, esi
push eax
call fcn.1006b5f0
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.100eaab6
mov esp, ebp
pop ebp
ret 8
push 0x1082bae4
call fcn.100eab45
add esp, 4
cmp dword [0x1082bae4], 0xffffffff
jne 0x1006ec62
push 0x1082bae4
mov dword [ebp - 4], 0xffffffff
call fcn.100eaaf4
add esp, 4
jmp 0x1006ec62
call fcn.100f1ae9
nop dword [eax]
call 0xb116f8ba
jmp 268890581
invalid