Function at 0x1014f000
Capabilities:
Encode data using xor
Hash data using murmur2
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x148
mov esi, esp
mov edi, ecx
mov eax, dword [0x102b0014]
xor eax, ebp
mov dword [esi + 0x140], eax
mov dword [esi + 0x110], 0xffffffff
mov dword [esi + 0x114], 0xffffffff
mov dword [esi + 0x118], 0xffffffff
sub esp, 0x24
xorps xmm0, xmm0
movups xmmword [esp + 0x10], xmm0
lea eax, [esi + 0x110]
mov dword [esp], eax
mov dword [esp + 0x20], 0
mov dword [esp + 0xc], str.LogMessage
mov dword [esp + 8], 0x102b2460
mov dword [esp + 4], 0x49
call fcn.10178d60
add esp, 0x24
cmp dword [esi + 0x110], 0
je 0x10150056
mov dword [esi + 0x104], esp
push eax
sub esp, 0x10
mov ebx, esp
mov dword [esi + 0x100], esp
movsd xmm0, qword [edi]
movsd qword [ebx + 0xc], xmm0
mov eax, dword [esi + 0x110]
mov dword [ebx], 0
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x114]
mov dword [ebx + 8], eax
sub esp, 0xc
mov edi, esp
mov ecx, edi
push ebx
call fcn.1002f540
mov ecx, dword [ebx + 4]
mov eax, dword [ebx + 8]
mov dword [edi + 8], eax
mov dword [edi + 4], ecx
mov dword [esi + 0x94], ebx
mov ebx, dword [ebx + 0xc]
push 0x15
call fcn.1002f340
mov dword [esi + 0x18], eax
mov eax, dword [ebx + 0x94]
mov dword [esi + 0xc], ebx
mov ecx, dword [ebx + 0x98]
mov dword [esi + 0x11c], 0
mov dword [esi + 0x120], eax
mov dword [esi + 0x124], ecx
push dword [edi + 8]
call fcn.10150320
add esp, 4
mov ebx, dword [eax + 0x10]
lea ecx, [eax + 4]
add ebx, 1
mov eax, dword [esi + 0x124]
mov dword [esi + 0x138], eax
movsd xmm0, qword [esi + 0x11c]
movsd qword [esi + 0x130], xmm0
mov dword [esi + 0x13c], ebx
lea edx, [esi + 0x130]
lea eax, [esi + 0x128]
push edx
push edx
push eax
call fcn.101509c0
cmp byte [esi + 0x12c], 0
mov dword [esi + 0x34], edi
je 0x1014f17d
mov eax, dword [edi + 8]
add eax, 0x48
lea ecx, [esi + 0x11c]
push ecx
mov dword [esi + 4], ebx
push ebx
push eax
call fcn.1019eff0
add esp, 0xc
jmp 0x1014f189
mov eax, dword [esi + 0x128]
mov eax, dword [eax + 0x14]
mov dword [esi + 4], eax
mov ecx, dword [esi + 0x18]
cmp dword [ecx + 8], 0
je 0x1014f19d
mov ecx, dword [esi + 0x18]
call fcn.1002f184
mov ecx, dword [esi + 0x18]
lea ebx, [esi + 0x131]
mov word [esi + 0x13d], 0xffff
mov dword [esi + 0x139], 0xffffffff
mov dword [esi + 0x135], 0xffffffff
mov dword [esi + 0x131], 0xffffffff
mov byte [esi + 0x130], 8
cmp dword [esi + 4], 0x80
jb 0x1014f21d
mov dword [esi], 0
xor edi, edi
mov edx, dword [esi + 4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, edx
mov ecx, eax
or cl, 0x80
mov byte [ebx], cl
add ebx, 1
mov edx, dword [esi]
shld edx, eax, 0x19
shr edi, 7
mov ecx, 0x3fff
cmp ecx, eax
mov ecx, 0
sbb ecx, dword [esi]
mov dword [esi], edi
jb 0x1014f1f0
mov dword [esi + 4], edx
mov ecx, dword [esi + 0x18]
mov eax, dword [esi + 4]
mov byte [ebx], al
lea edx, [esi + 0x130]
mov edi, edx
neg edi
mov dword [esi + 0xfc], edi
lea eax, [ebx + edi]
add eax, 1
sub ebx, edx
mov edi, dword [ecx]
mov ecx, dword [edi + 0xc]
add ebx, ecx
add ebx, 1
cmp ebx, dword [edi + 8]
mov dword [esi], eax
ja 0x1014f464
push eax
push edx
push ecx
call fcn.10208400
add esp, 0xc
mov dword [edi + 0xc], ebx
mov eax, dword [esi + 0x18]
mov ecx, dword [esi]
add dword [eax + 0x10], ecx
mov eax, dword [esi + 0x94]
mov edx, dword [eax + 0x10]
movzx eax, byte [edx + 0xb]
mov ebx, eax
test al, al
jns 0x1014f27b
mov ebx, dword [edx + 4]
mov ecx, dword [esi + 0xc]
mov ecx, dword [ecx + 0x90]
sub ebx, ecx
jb 0x1014f6ed
test al, al
jns 0x1014f292
mov edx, dword [edx]
cmp ebx, 0xfffffff0
jae 0x1014f578
cmp ebx, 0xb
jae 0x1014f2b2
lea edi, [esi + 0x11c]
mov byte [esi + 0x127], bl
test ebx, ebx
jne 0x1014f2e5
jmp 0x1014f2f2
lea edi, [ebx + 0x10]
and edi, 0xfffffff0
push edi
mov dword [esi], edx
mov dword [esi + 4], ecx
call fcn.1020d865
mov ecx, dword [esi + 4]
mov edx, dword [esi]
add esp, 4
mov dword [esi + 0x11c], eax
or edi, 0x80000000
mov dword [esi + 0x124], edi
mov edi, eax
mov dword [esi + 0x120], ebx
add edx, ecx
push ebx
push edx
push edi
call fcn.10208400
add esp, 0xc
mov byte [edi + ebx], 0
mov eax, dword [esi + 0x34]
mov eax, dword [eax + 8]
lea edi, [eax + 0x70]
mov edx, dword [eax + 0x70]
cmp edx, 0x14
je 0x1014f70c
lea ecx, [eax + 0x78]
mov ebx, dword [eax + 0x78]
cmp ebx, 0x14
jne 0x1014f31d
mov edi, ecx
jmp 0x1014f70c
mov dword [esi + 0xc], ebx
mov dword [esi], edi
lea edi, [eax + 0x80]
mov ebx, dword [eax + 0x80]
mov dword [esi + 4], ebx
cmp ebx, 0x14
je 0x1014f70c
mov dword [esi + 0x14], edi
lea edi, [eax + 0x88]
mov ebx, dword [eax + 0x88]
cmp ebx, 0x14
je 0x1014f70c
mov dword [esi + 0x2c], ebx
mov dword [esi + 8], edi
lea edi, [eax + 0x90]
mov ebx, dword [eax + 0x90]
mov dword [esi + 0x20], ebx
cmp ebx, 0x14
je 0x1014f70c
mov dword [esi + 0x1c], edi
lea edi, [eax + 0x98]
mov ebx, dword [eax + 0x98]
cmp ebx, 0x14
je 0x1014f70c
mov dword [esi + 0x30], ebx
mov dword [esi + 0x10], edi
lea edi, [eax + 0xa0]
mov ebx, dword [eax + 0xa0]
mov dword [esi + 0x28], ebx
cmp ebx, 0x14
je 0x1014f70c
mov dword [esi + 0x44], edi
lea edi, [eax + 0xa8]
mov ebx, dword [eax + 0xa8]
cmp ebx, 0x14
je 0x1014f70c
mov dword [esi + 0x3c], ebx
mov dword [esi + 0x24], edi
lea edi, [eax + 0xb0]
mov ebx, dword [eax + 0xb0]
mov dword [esi + 0x40], ebx
cmp ebx, 0x14
je 0x1014f70c
mov dword [esi + 0x38], edi
lea edi, [eax + 0xb8]
mov ebx, dword [eax + 0xb8]
cmp ebx, 0x14
je 0x1014f70c
mov dword [esi + 0xf0], ebx
mov dword [esi + 0xf8], edi
lea edi, [eax + 0xc0]
mov ebx, dword [eax + 0xc0]
mov dword [esi + 0xf4], ebx
cmp ebx, 0x14
je 0x1014f70c
mov dword [esi + 0xec], edi
lea edi, [eax + 0xc8]
mov ebx, dword [eax + 0xc8]
cmp ebx, 0x14
je 0x1014f70c
mov dword [esi + 0xe8], ecx
lea ecx, [eax + 0xd0]
mov dword [esi + 0x90], ecx
mov ecx, dword [eax + 0xd0]
mov dword [esi + 0xe4], ecx
cmp ecx, 0x14
jne 0x1014f472
mov edi, dword [esi + 0x90]
jmp 0x1014f70c
mov ecx, edi
push eax
push edx
call fcn.1002fe90
jmp 0x1014f25d
lea ecx, [eax + 0xd8]
mov dword [esi + 0x8c], ecx
mov ecx, dword [eax + 0xd8]
mov dword [esi + 0xe0], ecx
cmp ecx, 0x14
jne 0x1014f49a
mov edi, dword [esi + 0x8c]
jmp 0x1014f70c
lea ecx, [eax + 0xe0]
mov dword [esi + 0x88], ecx
mov ecx, dword [eax + 0xe0]
mov dword [esi + 0xdc], ecx
cmp ecx, 0x14
jne 0x1014f4c2
mov edi, dword [esi + 0x88]
jmp 0x1014f70c
lea ecx, [eax + 0xe8]
mov dword [esi + 0x84], ecx
mov ecx, dword [eax + 0xe8]
mov dword [esi + 0xd8], ecx
cmp ecx, 0x14
jne 0x1014f4ea
mov edi, dword [esi + 0x84]
jmp 0x1014f70c
lea ecx, [eax + 0xf0]
mov dword [esi + 0x80], ecx
mov ecx, dword [eax + 0xf0]
mov dword [esi + 0xd4], ecx
cmp ecx, 0x14
jne 0x1014f512
mov edi, dword [esi + 0x80]
jmp 0x1014f70c
lea ecx, [eax + 0xf8]
mov dword [esi + 0x7c], ecx
mov ecx, dword [eax + 0xf8]
mov dword [esi + 0xd0], ecx
cmp ecx, 0x14
jne 0x1014f534
mov edi, dword [esi + 0x7c]
jmp 0x1014f70c
lea ecx, [eax + 0x100]
mov dword [esi + 0x78], ecx
mov ecx, dword [eax + 0x100]
mov dword [esi + 0xcc], ecx
cmp ecx, 0x14
jne 0x1014f556
mov edi, dword [esi + 0x78]
jmp 0x1014f70c
lea ecx, [eax + 0x108]
mov dword [esi + 0x74], ecx
mov ecx, dword [eax + 0x108]
mov dword [esi + 0xc8], ecx
cmp ecx, 0x14
jne 0x1014f583
mov edi, dword [esi + 0x74]
jmp 0x1014f70c
lea ecx, [esi + 0x11c]
call fcn.101407c4
lea ecx, [eax + 0x110]
mov dword [esi + 0x70], ecx
mov ecx, dword [eax + 0x110]
mov dword [esi + 0xc4], ecx
cmp ecx, 0x14
jne 0x1014f5a5
mov edi, dword [esi + 0x70]
jmp 0x1014f70c
lea ecx, [eax + 0x118]
mov dword [esi + 0x6c], ecx
mov ecx, dword [eax + 0x118]
mov dword [esi + 0xc0], ecx
cmp ecx, 0x14
jne 0x1014f5c7
mov edi, dword [esi + 0x6c]
jmp 0x1014f70c
lea ecx, [eax + 0x120]
mov dword [esi + 0x68], ecx
mov ecx, dword [eax + 0x120]
mov dword [esi + 0xbc], ecx
cmp ecx, 0x14
jne 0x1014f5e9
mov edi, dword [esi + 0x68]
jmp 0x1014f70c
lea ecx, [eax + 0x128]
mov dword [esi + 0x64], ecx
mov ecx, dword [eax + 0x128]
mov dword [esi + 0xb8], ecx
cmp ecx, 0x14
jne 0x1014f60b
mov edi, dword [esi + 0x64]
jmp 0x1014f70c
lea ecx, [eax + 0x130]
mov dword [esi + 0x60], ecx
mov ecx, dword [eax + 0x130]
mov dword [esi + 0xb4], ecx
cmp ecx, 0x14
jne 0x1014f62d
mov edi, dword [esi + 0x60]
jmp 0x1014f70c
lea ecx, [eax + 0x138]
mov dword [esi + 0x5c], ecx
mov ecx, dword [eax + 0x138]
mov dword [esi + 0xb0], ecx
cmp ecx, 0x14
jne 0x1014f64f
mov edi, dword [esi + 0x5c]
jmp 0x1014f70c
lea ecx, [eax + 0x140]
mov dword [esi + 0x58], ecx
mov ecx, dword [eax + 0x140]
mov dword [esi + 0xac], ecx
cmp ecx, 0x14
jne 0x1014f671
mov edi, dword [esi + 0x58]
jmp 0x1014f70c
lea ecx, [eax + 0x148]
mov dword [esi + 0x54], ecx
mov ecx, dword [eax + 0x148]
mov dword [esi + 0xa8], ecx
cmp ecx, 0x14
jne 0x1014f690
mov edi, dword [esi + 0x54]
jmp 0x1014f70c
lea ecx, [eax + 0x150]
mov dword [esi + 0x50], ecx
mov ecx, dword [eax + 0x150]
mov dword [esi + 0xa4], ecx
cmp ecx, 0x14
jne 0x1014f6af
mov edi, dword [esi + 0x50]
jmp 0x1014f70c
lea ecx, [eax + 0x158]
mov dword [esi + 0x4c], ecx
mov ecx, dword [eax + 0x158]
mov dword [esi + 0xa0], ecx
cmp ecx, 0x14
jne 0x1014f6ce
mov edi, dword [esi + 0x4c]
jmp 0x1014f70c
lea ecx, [eax + 0x160]
mov dword [esi + 0x48], ecx
mov ecx, dword [eax + 0x160]
mov dword [esi + 0x9c], ecx
cmp ecx, 0x14
jne 0x1014f6f0
mov edi, dword [esi + 0x48]
jmp 0x1014f70c
int3
mov ecx, dword [eax + 0x168]
add eax, 0x168
mov dword [esi + 0x98], ecx
cmp ecx, 0x14
jne 0x10150086
mov edi, eax
add edi, 4
mov ebx, edi
lea edx, [esi + 0x130]
mov eax, dword [ebx]
mov dword [esi + 4], eax
mov eax, dword [eax + 0x10]
add eax, 1
mov dword [esi + 0xc], eax
cmp byte [esi + 0x127], 0
js 0x1014f74c
mov eax, dword [esi + 0x124]
mov dword [esi + 0x138], eax
movsd xmm0, qword [esi + 0x11c]
movsd qword [esi + 0x130], xmm0
jmp 0x1014f769
lea ecx, [esi + 0x130]
push dword [esi + 0x120]
push dword [esi + 0x11c]
call fcn.10140cd4
lea edx, [esi + 0x130]
mov eax, dword [esi + 0xc]
mov dword [esi + 0x13c], eax
mov cl, byte [esi + 0x13b]
mov edi, dword [esi + 0x130]
mov eax, dword [esi + 0x134]
mov dword [esi], eax
add eax, edi
test cl, cl
mov byte [esi + 0x10], cl
movzx ecx, cl
mov dword [esi + 8], ecx
lea ecx, [esi + ecx + 0x130]
cmovs ecx, eax
cmovns edi, edx
sub ecx, edi
cmp ecx, 4
mov dword [esi + 0x14], edi
jb 0x1014f7dd
mov edx, edi
mov eax, ecx
nop
nop
imul edi, dword [edx], 0x5bd1e995
mov ebx, edi
shr ebx, 0x18
xor ebx, edi
imul edi, ebx, 0x5bd1e995
imul eax, eax, 0x5bd1e995
xor eax, edi
add edx, 4
add ecx, 0xfffffffc
cmp ecx, 3
ja 0x1014f7b0
cmp ecx, 1
jne 0x1014f7e6
jmp 0x1014f802
mov eax, ecx
mov edx, edi
cmp ecx, 1
je 0x1014f802
cmp ecx, 2
je 0x1014f7f9
cmp ecx, 3
jne 0x1014f80d
movzx ecx, byte [edx + 2]
shl ecx, 0x10
xor eax, ecx
movzx ecx, byte [edx + 1]
shl ecx, 8
xor eax, ecx
movzx ecx, byte [edx]
xor ecx, eax
imul eax, ecx, 0x5bd1e995
mov ecx, eax
shr ecx, 0xd
xor ecx, eax
imul eax, ecx, 0x5bd1e995
mov edi, eax
shr edi, 0xf
xor edi, eax
mov eax, dword [esi + 4]
mov ebx, dword [eax + 8]
test ebx, ebx
mov dword [esi + 0x2c], edi
je 0x1014f874
mov eax, ebx
shr eax, 1
and eax, 0x55555555
mov ecx, ebx
sub ecx, eax
mov eax, ecx
and eax, 0x33333333
shr ecx, 2
and ecx, 0x33333333
add ecx, eax
mov eax, ecx
shr eax, 4
add eax, ecx
and eax, 0xf0f0f0f
imul eax, eax, 0x1010101
shr eax, 0x18
mov dword [esi + 0x28], eax
cmp eax, 1
ja 0x1014f880
lea edx, [ebx - 1]
and edx, edi
mov ecx, dword [esi + 8]
jmp 0x1014f88f
mov dword [esi + 0x1c], 0xffffffff
jmp 0x1014f989
mov edx, edi
cmp edi, ebx
mov ecx, dword [esi + 8]
jb 0x1014f88f
mov eax, edi
xor edx, edx
div ebx
mov eax, dword [esi + 4]
mov eax, dword [eax + 4]
mov dword [esi + 0x1c], edx
mov eax, dword [eax + edx*4]
test eax, eax
je 0x1014f989
cmp byte [esi + 0x10], 0
cmovs ecx, dword [esi]
mov edi, dword [eax]
test edi, edi
je 0x1014f989
mov dword [esi + 8], ecx
lea eax, [ebx - 1]
mov dword [esi + 0x30], eax
mov dword [esi + 0x20], ebx
jmp 0x1014f8da
mov edi, dword [edi]
test edi, edi
je 0x1014f989
mov eax, dword [edi + 4]
cmp eax, dword [esi + 0x2c]
je 0x1014f905
cmp dword [esi + 0x28], 1
ja 0x1014f8f0
and eax, dword [esi + 0x30]
mov ecx, dword [esi + 0x1c]
jmp 0x1014f8fd
cmp eax, ebx
mov ecx, dword [esi + 0x1c]
jb 0x1014f8fd
xor edx, edx
div ebx
mov eax, edx
cmp eax, ecx
jne 0x1014f989
movzx eax, byte [edi + 0x13]
mov ecx, eax
mov dword [esi], eax
test al, al
jns 0x1014f914
mov ecx, dword [edi + 0xc]
cmp ecx, dword [esi + 8]
jne 0x1014f8d0
lea ecx, [edi + 8]
mov edx, dword [ecx]
cmp byte [esi], 0
cmovs ecx, edx
js 0x1014f963
cmp dword [esi + 8], 0
je 0x1014f97f
mov eax, dword [esi + 0x14]
cmp byte [eax], dl
jne 0x1014f8d0
add dword [esi], 0xffffffff
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [esi], ecx
je 0x1014f97f
movzx edx, byte [edi + ecx + 9]
mov ebx, edi
lea edi, [ecx + 1]
mov eax, dword [esi + 0x14]
cmp dl, byte [eax + ecx + 1]
mov ecx, edi
mov edi, ebx
mov ebx, dword [esi + 0x20]
je 0x1014f940
jmp 0x1014f8d0
mov eax, dword [esi + 8]
test eax, eax
je 0x1014f97f
push eax
push dword [esi + 0x14]
push ecx
call fcn.1020d865
add esp, 0xc
test eax, eax
jne 0x1014f8d0
mov al, byte [esi + 0x10]
mov bl, 1
jmp 0x1014fef8
push 0x18
call fcn.1020d865
add esp, 4
mov edi, eax
mov eax, dword [esi + 0x138]
mov dword [edi + 0x10], eax
movsd xmm0, qword [esi + 0x130]
movsd qword [edi + 8], xmm0
mov dword [esi + 0x130], 0
mov dword [esi + 0x134], 0
mov dword [esi + 0x138], 0
mov eax, dword [esi + 0xc]
mov dword [edi + 0x14], eax
mov eax, dword [esi + 0x2c]
mov dword [edi + 4], eax
mov dword [edi], 0
mov ecx, dword [esi + 4]
mov eax, dword [ecx + 0x10]
add eax, 1
movd xmm0, eax
movq xmm1, qword [0x10253170]
por xmm0, xmm1
subsd xmm0, xmm1
cvtsd2ss xmm0, xmm0
movd xmm2, ebx
por xmm2, xmm1
subsd xmm2, xmm1
cvtsd2ss xmm2, xmm2
movss xmm1, dword [ecx + 0x14]
mulss xmm2, xmm1
ucomiss xmm0, xmm2
ja 0x1014fa26
test ebx, ebx
je 0x1014fa26
mov edx, dword [esi + 0x1c]
jmp 0x1014fe9b
divss xmm0, xmm1
cvtss2sd xmm0, xmm0
sub esp, 8
movsd qword [esp], xmm0
call fcn.102300f0
add esp, 8
fstp dword [esi + 0x10c]
movss xmm0, dword [esi + 0x10c]
movss xmm2, dword [0x10245cf0]
movaps xmm1, xmm0
subss xmm1, xmm2
cvttss2si eax, xmm1
xor eax, 0x80000000
cvttss2si ecx, xmm0
ucomiss xmm0, xmm2
cmovae ecx, eax
lea eax, [ebx + ebx]
cmp ebx, 2
jbe 0x1014fa88
lea edx, [ebx - 1]
mov dword [esi], edx
mov edx, ebx
xor ebx, ebx
test dword [esi], edx
setne bl
or eax, ebx
jmp 0x1014fa8b
or eax, 1
cmp eax, ecx
cmovb eax, ecx
mov ecx, 2
cmp eax, 1
je 0x1014faac
lea ecx, [eax - 1]
test eax, ecx
je 0x1014faaa
push eax
call fcn.1012aef8
add esp, 4
mov ecx, eax
mov dword [esi + 0x38], edi
mov eax, dword [esi + 4]
mov edi, dword [eax + 8]
cmp ecx, edi
jbe 0x1014fbd5
cmp ecx, 0x40000000
jae 0x10150081
mov dword [esi + 0x24], ecx
lea eax, [ecx*4]
push eax
call fcn.1020d865
add esp, 4
mov edx, dword [esi + 4]
mov ecx, dword [edx + 4]
mov dword [edx + 4], eax
test ecx, ecx
je 0x1014faf2
push ecx
call fcn.10205096
add esp, 4
mov ebx, dword [esi + 4]
mov eax, dword [esi + 0x24]
mov dword [ebx + 8], eax
lea edx, [eax - 1]
and eax, 3
xor ecx, ecx
mov dword [esi + 0x3c], edx
cmp edx, 3
jb 0x1014fb52
mov edx, dword [esi + 0x24]
and edx, 0xfffffffc
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, dword [ebx + 4]
mov dword [edi + ecx*4], 0
mov edi, dword [ebx + 4]
mov dword [edi + ecx*4 + 4], 0
mov edi, dword [ebx + 4]
mov dword [edi + ecx*4 + 8], 0
mov edi, dword [ebx + 4]
mov dword [edi + ecx*4 + 0xc], 0
add ecx, 4
cmp edx, ecx
jne 0x1014fb20
test eax, eax
je 0x1014fb72
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [ebx + 4]
mov dword [edx + ecx*4], 0
add ecx, 1
add eax, 0xffffffff
jne 0x1014fb60
mov ecx, dword [ebx + 0xc]
test ecx, ecx
mov edi, dword [esi + 0x24]
je 0x1014fe74
mov eax, dword [esi + 4]
add eax, 0xc
mov dword [esi], eax
mov eax, edi
shr eax, 1
and eax, 0x55555555
mov edx, edi
sub edx, eax
mov eax, edx
and eax, 0x33333333
shr edx, 2
and edx, 0x33333333
add edx, eax
mov eax, edx
shr eax, 4
add eax, edx
mov ebx, ecx
mov edx, dword [ecx + 4]
and eax, 0xf0f0f0f
imul eax, eax, 0x1010101
shr eax, 0x18
mov dword [esi + 0x30], eax
cmp eax, 1
ja 0x1014fcac
and edx, dword [esi + 0x3c]
jmp 0x1014fcb8
jae 0x1014fe74
mov ebx, ecx
mov eax, dword [esi + 4]
movss xmm0, dword [eax + 0x10]
orpd xmm0, xmmword [0x1025a6d0]
subsd xmm0, qword [0x10253170]
cvtsd2ss xmm0, xmm0
divss xmm0, dword [eax + 0x14]
cvtss2sd xmm0, xmm0
sub esp, 8
movsd qword [esp], xmm0
call fcn.102300f0
add esp, 8
fstp dword [esi + 0x108]
movss xmm0, dword [esi + 0x108]
movaps xmm1, xmm0
movss xmm2, dword [0x10245cf0]
subss xmm1, xmm2
cvttss2si ecx, xmm1
xor ecx, 0x80000000
cvttss2si eax, xmm0
ucomiss xmm0, xmm2
cmovae eax, ecx
cmp edi, 3
jb 0x1014fe34
mov ecx, edi
shr ecx, 1
and ecx, 0x55555555
mov edx, edi
sub edx, ecx
mov ecx, edx
and ecx, 0x33333333
shr edx, 2
and edx, 0x33333333
add edx, ecx
mov ecx, edx
shr ecx, 4
add ecx, edx
and ecx, 0xf0f0f0f
imul ecx, ecx, 0x1010101
shr ecx, 0x18
cmp ecx, 1
ja 0x1014fe34
cmp eax, 2
jb 0x1014fe3d
add eax, 0xffffffff
bsr ecx, eax
xor ecx, 0x1f
neg cl
mov eax, 1
shl eax, cl
jmp 0x1014fe3d
cmp edx, edi
jb 0x1014fcb8
mov eax, edx
xor edx, edx
div edi
mov ebx, ecx
mov eax, dword [esi + 4]
mov eax, dword [eax + 4]
mov ecx, dword [esi]
mov dword [eax + edx*4], ecx
mov edi, dword [ebx]
test edi, edi
mov ecx, dword [esi + 0x24]
je 0x1014fe74
mov eax, edx
jmp 0x1014fcec
mov ebx, edi
mov edi, dword [ebx]
test edi, edi
je 0x1014fe74
mov edx, dword [edi + 4]
cmp dword [esi + 0x30], 1
ja 0x1014fd00
and edx, dword [esi + 0x3c]
jmp 0x1014fd10
cmp edx, ecx
jb 0x1014fd10
mov dword [esi + 0x1c], eax
mov eax, edx
xor edx, edx
div ecx
mov eax, dword [esi + 0x1c]
cmp edx, eax
je 0x1014fce0
mov dword [esi + 0x1c], eax
mov eax, dword [esi + 4]
mov eax, dword [eax + 4]
cmp dword [eax + edx*4], 0
je 0x1014fdf3
mov eax, dword [edi]
test eax, eax
mov dword [esi + 0x20], ebx
mov dword [esi + 0x40], edx
je 0x1014fdff
movzx ecx, byte [edi + 0x13]
mov dword [esi], ecx
mov ecx, dword [esi]
mov byte [esi + 0x28], cl
mov ecx, dword [esi]
mov dword [esi + 0x14], ecx
cmp byte [esi + 0x28], 0
jns 0x1014fd53
mov ecx, dword [edi + 0xc]
mov dword [esi + 0x14], ecx
lea ecx, [edi + 8]
mov dword [esi + 0x44], ecx
add dword [esi], 0xffffffff
mov ecx, edi
jmp 0x1014fd70
mov ecx, dword [esi + 8]
mov eax, dword [ecx]
test eax, eax
mov ebx, dword [esi + 0x20]
je 0x1014fe2f
mov dword [esi + 0x10], ecx
mov edx, eax
movzx ecx, byte [eax + 0x13]
mov eax, ecx
test cl, cl
jns 0x1014fd82
mov eax, dword [edx + 0xc]
cmp dword [esi + 0x14], eax
jne 0x1014fe04
lea eax, [edx + 8]
test cl, cl
mov dword [esi + 8], edx
jns 0x1014fd93
mov eax, dword [eax]
mov ecx, dword [esi + 0x44]
mov edx, dword [ecx]
cmp byte [esi + 0x28], 0
cmovs ecx, edx
js 0x1014fdd0
cmp dword [esi + 0x14], 0
je 0x1014fd60
cmp byte [eax], dl
jne 0x1014fdeb
xor ecx, ecx
nop
nop
nop
cmp dword [esi], ecx
je 0x1014fd60
movzx edx, byte [edi + ecx + 9]
lea ebx, [ecx + 1]
cmp dl, byte [eax + ecx + 1]
mov ecx, ebx
je 0x1014fdb0
jmp 0x1014fdeb
cmp dword [esi + 0x14], 0
je 0x1014fd60
push dword [esi + 0x14]
push eax
push ecx
call fcn.1020d865
add esp, 0xc
test eax, eax
je 0x1014fd60
mov ebx, dword [esi + 0x20]
mov edx, dword [esi + 8]
jmp 0x1014fe04
mov dword [eax + edx*4], ebx
mov ebx, edi
mov eax, edx
jmp 0x1014fce2
mov dword [esi + 0x10], edi
xor edx, edx
mov dword [ebx], edx
mov ecx, dword [esi + 4]
mov eax, dword [ecx + 4]
mov edx, dword [esi + 0x40]
mov eax, dword [eax + edx*4]
mov eax, dword [eax]
mov ebx, dword [esi + 0x10]
mov dword [ebx], eax
mov ebx, dword [esi + 0x20]
mov eax, dword [ecx + 4]
mov eax, dword [eax + edx*4]
mov dword [eax], edi
mov ecx, dword [esi + 0x24]
mov eax, dword [esi + 0x1c]
jmp 0x1014fce2
mov dword [esi + 0x10], ecx
jmp 0x1014fe02
push eax
call fcn.1012aef8
add esp, 4
mov ecx, ebx
cmp ebx, eax
cmovb ecx, eax
cmp ecx, edi
jae 0x1014fe74
test ecx, ecx
jne 0x1014fabd
mov ecx, dword [esi + 4]
mov eax, dword [ecx + 4]
mov dword [ecx + 4], 0
test eax, eax
je 0x1014fe6a
push eax
call fcn.10205096
add esp, 4
mov eax, dword [esi + 4]
mov dword [eax + 8], 0
mov eax, dword [esi + 4]
mov ebx, dword [eax + 8]
lea edx, [ebx - 1]
test ebx, edx
jne 0x1014fe89
and edx, dword [esi + 0x2c]
mov edi, dword [esi + 0x38]
jmp 0x1014fe9b
mov eax, dword [esi + 0x2c]
cmp eax, ebx
mov edi, dword [esi + 0x38]
jae 0x1014fe97
mov edx, eax
jmp 0x1014fe9b
xor edx, edx
div ebx
mov eax, dword [esi + 4]
mov ecx, dword [eax + 4]
mov dword [esi], ecx
mov ecx, dword [ecx + edx*4]
test ecx, ecx
je 0x1014feb2
mov eax, dword [ecx]
mov dword [edi], eax
mov dword [ecx], edi
jmp 0x1014fee9
mov ecx, dword [eax + 0xc]
mov dword [edi], ecx
lea ecx, [eax + 0xc]
mov dword [eax + 0xc], edi
mov eax, dword [esi]
mov dword [eax + edx*4], ecx
mov eax, dword [edi]
test eax, eax
je 0x1014fee9
mov eax, dword [eax + 4]
lea ecx, [ebx - 1]
test ebx, ecx
jne 0x1014fed6
and eax, ecx
jmp 0x1014fee0
cmp eax, ebx
jb 0x1014fee0
xor edx, edx
div ebx
mov eax, edx
mov ecx, dword [esi + 4]
mov ecx, dword [ecx + 4]
mov dword [ecx + eax*4], edi
mov eax, dword [esi + 4]
add dword [eax + 0x10], 1
xor ebx, ebx
mov al, byte [esi + 0x13b]
test al, al
mov eax, dword [esi + 0x34]
js 0x1014ff0b
test bl, bl
je 0x1014ff20
mov eax, dword [edi + 0x14]
mov dword [esi + 0xc], eax
jmp 0x1014ff39
push dword [esi + 0x130]
call fcn.10205096
mov eax, dword [esi + 0x34]
add esp, 4
test bl, bl
jne 0x1014ff03
mov eax, dword [eax + 8]
add eax, 0x48
lea ecx, [esi + 0x11c]
push ecx
push dword [esi + 0xc]
push eax
call fcn.1019f240
add esp, 0xc
mov ecx, dword [esi + 0x18]
lea edx, [esi + 0x130]
cmp dword [ecx + 8], 0
je 0x1014ff59
mov ecx, dword [esi + 0x18]
call fcn.1002f184
lea edx, [esi + 0x130]
mov ecx, dword [esi + 0x18]
lea ebx, [esi + 0x131]
mov word [esi + 0x13d], 0xffff
mov dword [esi + 0x139], 0xffffffff
mov dword [esi + 0x135], 0xffffffff
mov dword [esi + 0x131], 0xffffffff
mov byte [esi + 0x130], 0x10
cmp dword [esi + 0xc], 0x80
jb 0x1014ffe3
mov dword [esi], 0
xor edi, edi
mov edx, dword [esi + 0xc]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, edx
mov ecx, eax
or cl, 0x80
mov byte [ebx], cl
add ebx, 1
mov edx, dword [esi]
shld edx, eax, 0x19
shr edi, 7
mov ecx, 0x3fff
cmp ecx, eax
mov ecx, 0
sbb ecx, dword [esi]
mov dword [esi], edi
jb 0x1014ffb0
mov dword [esi + 0xc], edx
mov ecx, dword [esi + 0x18]
lea edx, [esi + 0x130]
mov eax, dword [esi + 0xc]
mov byte [ebx], al
mov edi, dword [esi + 0xfc]
lea eax, [ebx + edi]
add eax, 1
sub ebx, edx
mov edi, dword [ecx]
mov ecx, dword [edi + 0xc]
add ebx, ecx
add ebx, 1
cmp ebx, dword [edi + 8]
mov dword [esi], eax
ja 0x10150076
push eax
push edx
push ecx
call fcn.10208400
add esp, 0xc
mov dword [edi + 0xc], ebx
mov eax, dword [esi + 0x18]
mov ecx, dword [esi]
add dword [eax + 0x10], ecx
cmp byte [esi + 0x127], 0
mov ecx, dword [esi + 0x34]
jns 0x1015003a
push dword [esi + 0x11c]
call fcn.10205096
mov ecx, dword [esi + 0x34]
add esp, 4
call fcn.10030ac4
mov esp, dword [esi + 0x100]
mov ecx, dword [esi + 0x94]
call fcn.10030ac4
mov esp, dword [esi + 0x104]
lea ecx, [esi + 0x110]
call fcn.10178d20
mov ecx, dword [esi + 0x140]
xor ecx, ebp
call fcn.10205d16
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, edi
push eax
push edx
call fcn.1002fe90
jmp 0x10150015
call fcn.102177d0
test edx, edx
je 0x10150289
mov ecx, dword [esi + 0xe8]
mov dword [esi], ecx
cmp dword [esi + 0xc], 0
je 0x10150289
mov ecx, dword [esi + 0x14]
mov dword [esi], ecx
cmp dword [esi + 4], 0
je 0x10150289
mov ecx, dword [esi + 8]
mov dword [esi], ecx
cmp dword [esi + 0x2c], 0
je 0x10150289
mov ecx, dword [esi + 0x1c]
mov dword [esi], ecx
cmp dword [esi + 0x20], 0
je 0x10150289
mov ecx, dword [esi + 0x10]
mov dword [esi], ecx
cmp dword [esi + 0x30], 0
je 0x10150289
mov ecx, dword [esi + 0x44]
mov dword [esi], ecx
cmp dword [esi + 0x28], 0
je 0x10150289
mov ecx, dword [esi + 0x24]
mov dword [esi], ecx
cmp dword [esi + 0x3c], 0
je 0x10150289
mov ecx, dword [esi + 0x38]
mov dword [esi], ecx
cmp dword [esi + 0x40], 0
je 0x10150289
mov ecx, dword [esi + 0xf8]
mov dword [esi], ecx
cmp dword [esi + 0xf0], 0
je 0x10150289
mov ecx, dword [esi + 0xec]
mov dword [esi], ecx
cmp dword [esi + 0xf4], 0
je 0x10150289
mov dword [esi], edi
test ebx, ebx
je 0x10150289
mov ecx, dword [esi + 0x90]
mov dword [esi], ecx
cmp dword [esi + 0xe4], 0
je 0x10150289
mov ecx, dword [esi + 0x8c]
mov dword [esi], ecx
cmp dword [esi + 0xe0], 0
je 0x10150289
mov ecx, dword [esi + 0x88]
mov dword [esi], ecx
cmp dword [esi + 0xdc], 0
je 0x10150289
mov ecx, dword [esi + 0x84]
mov dword [esi], ecx
cmp dword [esi + 0xd8], 0
je 0x10150289
mov ecx, dword [esi + 0x80]
mov dword [esi], ecx
cmp dword [esi + 0xd4], 0
je 0x10150289
mov ecx, dword [esi + 0x7c]
mov dword [esi], ecx
cmp dword [esi + 0xd0], 0
je 0x10150289
mov ecx, dword [esi + 0x78]
mov dword [esi], ecx
cmp dword [esi + 0xcc], 0
je 0x10150289
mov ecx, dword [esi + 0x74]
mov dword [esi], ecx
cmp dword [esi + 0xc8], 0
je 0x10150289
mov ecx, dword [esi + 0x70]
mov dword [esi], ecx
cmp dword [esi + 0xc4], 0
je 0x10150289
mov ecx, dword [esi + 0x6c]
mov dword [esi], ecx
cmp dword [esi + 0xc0], 0
je 0x10150289
mov ecx, dword [esi + 0x68]
mov dword [esi], ecx
cmp dword [esi + 0xbc], 0
je 0x10150289
mov ecx, dword [esi + 0x64]
mov dword [esi], ecx
cmp dword [esi + 0xb8], 0
je 0x10150289
mov ecx, dword [esi + 0x60]
mov dword [esi], ecx
cmp dword [esi + 0xb4], 0
je 0x10150289
mov ecx, dword [esi + 0x5c]
mov dword [esi], ecx
cmp dword [esi + 0xb0], 0
je 0x10150289
mov ecx, dword [esi + 0x58]
mov dword [esi], ecx
cmp dword [esi + 0xac], 0
je 0x10150289
mov ecx, dword [esi + 0x54]
mov dword [esi], ecx
cmp dword [esi + 0xa8], 0
je 0x10150289
mov ecx, dword [esi + 0x50]
mov dword [esi], ecx
cmp dword [esi + 0xa4], 0
je 0x10150289
mov ecx, dword [esi + 0x4c]
mov dword [esi], ecx
cmp dword [esi + 0xa0], 0
je 0x10150289
mov ecx, dword [esi + 0x48]
mov dword [esi], ecx
cmp dword [esi + 0x9c], 0
je 0x10150289
mov dword [esi], eax
cmp dword [esi + 0x98], 0
jne 0x101502d1
mov edi, dword [esi]
mov dword [edi], 0x14
push 0x18
call fcn.1020d865
add esp, 4
xorps xmm0, xmm0
movups xmmword [eax], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0x3f800000
mov dword [eax], 0x1025908c
lea ebx, [edi + 4]
mov ecx, dword [edi + 4]
mov dword [edi + 4], eax
test ecx, ecx
je 0x1014f711
mov eax, dword [ecx]
push 1
call dword [eax]
jmp 0x1014f711
call fcn.1021569d
push dword [eax]
call fcn.1020d865
add esp, 4
mov edi, eax
call fcn.1021569d
mov ebx, dword [eax]
push str..._.._third_party_perfetto_include_perfetto_tracing_track_event_interned_data_index.h
call fcn.1002ef8c
add esp, 4
push edi
push ebx
push str.PERFETTO_CHECK_false_
push str._s__errno:__d___s_
push 0xf4
push eax
push 3
call fcn.1002fff0
add esp, 0x1c
int3