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

Disassembly:
sub esp, 0x60
push ebx
push ebp
push esi
mov esi, dword [esp + 0x7c]
mov ebx, esi
push edi
mov edi, dword [esp + 0x74]
mov edx, esi
mov dword [esp + 0x34], ebx
mov eax, dword [edi + 0x5c]
mov dword [esp + 0x30], eax
mov eax, dword [edi + 0xc0]
mov dword [esp + 0x58], eax
mov eax, dword [edi + 0x64]
mov dword [esp + 0x14], eax
mov eax, dword [edi + 0xbc]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x84]
lea ecx, [esi + eax]
mov dword [esp + 0x74], ecx
add ecx, 0xfffffff8
mov dword [esp + 0x38], ecx
mov ecx, dword [edi + 4]
sub edx, ecx
add edx, eax
mov dword [esp + 0x1c], ecx
mov ecx, dword [edi + 0xb8]
mov dword [esp + 0x10], edx
mov edx, 1
mov eax, dword [esp + 0x10]
shl edx, cl
sub dword [esp + 0x10], edx
mov ecx, dword [edi + 0x10]
sub eax, ecx
cmp eax, edx
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
cmovbe edx, ecx
cmp dword [edi + 0x18], 0
cmovne edx, ecx
cmp dword [edi + 0xc], edx
mov ecx, edx
mov dword [esp + 0x10], edx
cmova ecx, dword [edi + 0xc]
add eax, ecx
mov dword [esp + 0x80], ecx
mov dword [esp + 0x20], eax
mov eax, dword [edi + 8]
mov dword [esp + 0x40], eax
lea ebp, [eax + edx]
add eax, ecx
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x54], ebp
mov ebp, dword [esp + 0x78]
mov eax, dword [eax]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x7c]
mov eax, dword [eax + 4]
mov dword [esp + 0x3c], eax
cmp ecx, edx
jne 0x1054e1b3
mov eax, dword [edi + 0xc8]
add eax, 0xfffffffc
cmp eax, 3
ja case.0x1054e128.4
jmp dword [eax*4 + 0x1054ecdc]
push dword [esp + 0x84]
push esi
push dword [esp + 0x84]
push ebp
push edi
call fcn.1054f700
add esp, 0x14
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x60
ret
push dword [esp + 0x84]
push esi
push dword [esp + 0x84]
push ebp
push edi
call fcn.105500d0
add esp, 0x14
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x60
ret
push dword [esp + 0x84]
push esi
push dword [esp + 0x84]
push ebp
push edi
call fcn.10550aa0
add esp, 0x14
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x60
ret
push dword [esp + 0x84]
push esi
push dword [esp + 0x84]
push ebp
push edi
call fcn.1054ed40
add esp, 0x14
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x60
ret
cmp esi, dword [esp + 0x38]
jae 0x1054ecc0
mov eax, 0x40
mov edi, 0x40
sub eax, dword [esp + 0x58]
mov ecx, 0x20
sub edi, dword [esp + 0x5c]
sub ecx, dword [esp + 0x5c]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x88]
add eax, 0xfffffffc
mov dword [esp + 0x84], edi
mov dword [esp + 0x28], ecx
mov dword [esp + 0x24], eax
cmp eax, 4
ja case.0x1054e1fa.0
jmp dword [eax*4 + 0x1054ecec]
push 0xcf1bbcdc
push 0xbb000000
push dword [esi + 4]
push dword [esi]
call fcn.10511b50
mov ecx, edi
call fcn.10512520
mov edi, eax
jmp 0x1054e24c
push 0xcf1bbcdc
push 0xbf9b0000
jmp 0x1054e20b
push 0xcf1bbcdc
push 0xbfa56300
jmp 0x1054e20b
push 0xcf1bbcdc
push 0xb7a56463
jmp 0x1054e20b
imul edi, dword [esi], 0x9e3779b1
shr edi, cl
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
push 0xcf1bbcdc
push 0xb7a56463
mov eax, dword [eax + edi*4]
cmp eax, dword [esp + 0x88]
push dword [esi + 4]
cmovb ecx, dword [esp + 0x4c]
push dword [esi]
mov dword [esp + 0x68], eax
add eax, ecx
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x6c], eax
call fcn.10511b50
mov ecx, dword [esp + 0x48]
call fcn.10512520
mov ecx, dword [esp + 0x30]
mov ebp, dword [esp + 0x80]
mov edx, dword [ecx + eax*4]
cmp edx, ebp
mov ecx, dword [esp + 0x1c]
cmovb ecx, dword [esp + 0x40]
mov dword [esp + 0x50], ecx
mov ecx, esi
sub ecx, dword [esp + 0x1c]
mov dword [esp + 0x2c], ecx
sub ecx, dword [esp + 0x18]
inc ecx
mov dword [esp + 0x68], edx
mov dword [esp + 0x4c], ecx
cmp dword [esp + 0x4c], ebp
mov ecx, dword [esp + 0x1c]
cmovb ecx, dword [esp + 0x40]
add ecx, dword [esp + 0x4c]
mov ebp, dword [esp + 0x30]
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x2c]
mov dword [ebp + eax*4], ecx
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x78]
mov dword [eax + edi*4], ecx
sub ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x80]
inc ecx
cmp ecx, dword [esp + 0x18]
mov eax, edi
sbb ecx, ecx
sub eax, dword [esp + 0x4c]
dec eax
inc ecx
cmp eax, 3
sbb eax, eax
inc eax
test eax, ecx
je 0x1054e44c
mov edi, dword [esp + 0x60]
lea ecx, [esi + 1]
mov dword [esp + 0x64], ecx
mov eax, dword [edi]
cmp eax, dword [ecx]
jne 0x1054e445
mov ecx, dword [esp + 0x74]
lea edx, [esi + 5]
mov eax, dword [esp + 0x80]
mov ebx, ecx
cmp dword [esp + 0x4c], eax
mov eax, edx
mov dword [esp + 0x60], edx
cmovb ebx, dword [esp + 0x44]
add edi, 4
sub eax, edi
add eax, ebx
cmp eax, ecx
cmovb ecx, eax
push ecx
push edi
push edx
call fcn.1054a920
mov esi, eax
add esp, 0xc
lea eax, [esi + edi]
cmp eax, ebx
jne 0x1054e383
push dword [esp + 0x74]
mov eax, dword [esp + 0x64]
push dword [esp + 0x24]
add eax, esi
push eax
call fcn.1054a920
add esp, 0xc
add esi, eax
mov edx, dword [esp + 0x74]
lea edi, [esi + 4]
mov esi, dword [esp + 0x64]
lea ebx, [ebp + 0xc]
mov ecx, dword [esp + 0x34]
add edx, 0xffffffe0
mov eax, esi
mov dword [esp + 0x5c], edx
mov edx, dword [ebx]
sub eax, ecx
mov dword [esp + 0x60], eax
cmp esi, dword [esp + 0x5c]
ja 0x1054e400
movups xmm0, xmmword [ecx]
movups xmmword [edx], xmm0
cmp eax, 0x10
jbe 0x1054e40f
movups xmm0, xmmword [ecx + 0x10]
lea edx, [ecx + 0x10]
add eax, 0xfffffff0
mov ecx, dword [ebx]
add ecx, 0x10
lea ebp, [ecx + eax]
mov dword [esp + 0x64], ebp
mov ebp, dword [esp + 0x78]
movups xmmword [ecx], xmm0
cmp eax, 0x10
jle 0x1054e40f
mov eax, dword [esp + 0x64]
add ecx, 0x10
add edx, 0x10
movups xmm0, xmmword [edx]
lea edx, [edx + 0x20]
movups xmmword [ecx], xmm0
movups xmm0, xmmword [edx - 0x10]
movups xmmword [ecx + 0x10], xmm0
add ecx, 0x20
cmp ecx, eax
jb 0x1054e3e3
lea ebx, [ebp + 0xc]
jmp 0x1054e40f
push dword [esp + 0x5c]
push esi
push ecx
push edx
call fcn.1054a9a0
add esp, 0x10
mov ecx, dword [esp + 0x60]
add dword [ebx], ecx
cmp ecx, 0xffff
jbe 0x1054e430
mov eax, dword [ebp + 4]
sub eax, dword [ebp]
sar eax, 3
mov dword [ebp + 0x24], 1
mov dword [ebp + 0x28], eax
mov eax, dword [ebp + 4]
mov word [eax + 4], cx
mov eax, dword [ebp + 4]
mov dword [eax], 1
jmp 0x1054e8c0
mov edi, dword [esp + 0x80]
cmp edx, dword [esp + 0x10]
jbe 0x1054e5dc
mov ecx, dword [esp + 0x50]
mov eax, dword [ecx + edx]
cmp eax, dword [esi]
jne 0x1054e5dc
mov eax, dword [ecx + edx + 4]
cmp eax, dword [esi + 4]
jne 0x1054e5dc
mov ebx, dword [esp + 0x74]
cmp edx, edi
mov eax, dword [esp + 0x20]
lea edi, [ecx + 8]
cmovb eax, dword [esp + 0x54]
cmovb ebx, dword [esp + 0x44]
add edi, edx
mov ecx, dword [esp + 0x74]
lea edx, [esi + 8]
mov dword [esp + 0x5c], eax
mov eax, edx
sub eax, edi
add eax, ebx
cmp eax, ecx
cmovb ecx, eax
push ecx
push edi
push edx
call fcn.1054a920
mov ecx, eax
add esp, 0xc
mov dword [esp + 0x64], ecx
lea eax, [ecx + edi]
cmp eax, ebx
jne 0x1054e4d5
push dword [esp + 0x74]
lea eax, [ecx + 8]
push dword [esp + 0x24]
add eax, esi
push eax
call fcn.1054a920
mov ecx, dword [esp + 0x70]
add esp, 0xc
add ecx, eax
mov ebx, dword [esp + 0x68]
lea edi, [ecx + 8]
mov ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x2c]
add ecx, ebx
mov edx, dword [esp + 0x34]
sub eax, ebx
cmp dword [esp + 0x5c], ecx
mov dword [esp + 0x58], eax
sbb ecx, ecx
neg ecx
cmp edx, esi
sbb eax, eax
neg eax
test eax, ecx
je 0x1054e53b
add ebx, dword [esp + 0x50]
mov ebp, dword [esp + 0x5c]
nop word [eax + eax]
lea eax, [esi - 1]
mov dword [esp + 0x68], eax
lea ecx, [ebx - 1]
mov al, byte [eax]
mov ebx, ecx
cmp al, byte [ecx]
jne 0x1054e537
mov esi, dword [esp + 0x68]
inc edi
cmp ebp, ebx
sbb ecx, ecx
neg ecx
cmp edx, esi
sbb eax, eax
neg eax
test eax, ecx
jne 0x1054e510
mov ebp, dword [esp + 0x78]
mov eax, dword [esp + 0x18]
lea ebx, [ebp + 0xc]
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x3c], eax
add ecx, 0xffffffe0
mov eax, dword [esp + 0x58]
mov dword [esp + 0x18], eax
mov eax, esi
mov dword [esp + 0x5c], ecx
sub eax, edx
mov ecx, dword [ebx]
mov dword [esp + 0x64], eax
cmp esi, dword [esp + 0x5c]
ja 0x1054e5c4
movups xmm0, xmmword [edx]
movups xmmword [ecx], xmm0
cmp eax, 0x10
jbe 0x1054e5d3
mov ecx, dword [ebx]
add eax, 0xfffffff0
movups xmm0, xmmword [edx + 0x10]
add ecx, 0x10
lea ebp, [ecx + eax]
mov dword [esp + 0x68], ebp
mov ebp, dword [esp + 0x78]
movups xmmword [ecx], xmm0
cmp eax, 0x10
jle 0x1054e5d3
mov eax, dword [esp + 0x68]
add ecx, 0x10
add edx, 0x20
nop dword [eax]
movups xmm0, xmmword [edx]
lea edx, [edx + 0x20]
movups xmmword [ecx], xmm0
movups xmm0, xmmword [edx - 0x10]
movups xmmword [ecx + 0x10], xmm0
add ecx, 0x20
cmp ecx, eax
jb 0x1054e5a0
mov ecx, dword [esp + 0x64]
lea ebx, [ebp + 0xc]
jmp 0x1054e890
push dword [esp + 0x5c]
push esi
push edx
push ecx
call fcn.1054a9a0
add esp, 0x10
mov ecx, dword [esp + 0x64]
jmp 0x1054e890
mov edx, dword [esp + 0x10]
cmp dword [esp + 0x58], edx
jbe 0x1054ec97
mov eax, dword [esp + 0x5c]
mov eax, dword [eax]
cmp eax, dword [esi]
jne 0x1054ec97
push 0xcf1bbcdc
lea ebx, [esi + 1]
push 0xb7a56463
push dword [ebx + 4]
mov dword [esp + 0x70], ebx
push dword [ebx]
call fcn.10511b50
mov ecx, dword [esp + 0x48]
call fcn.10512520
mov ecx, dword [esp + 0x30]
mov edx, dword [ecx + eax*4]
lea ecx, [ecx + eax*4]
cmp edx, dword [esp + 0x80]
mov edi, dword [esp + 0x1c]
cmovb edi, dword [esp + 0x40]
mov eax, dword [esp + 0x2c]
add edi, edx
inc eax
mov dword [esp + 0x60], edx
mov dword [esp + 0x50], edi
mov dword [ecx], eax
cmp edx, dword [esp + 0x10]
jbe 0x1054e732
mov eax, dword [edi]
cmp eax, dword [ebx]
jne 0x1054e732
mov eax, dword [edi + 4]
cmp eax, dword [ebx + 4]
jne 0x1054e732
cmp edx, dword [esp + 0x80]
lea edx, [esi + 9]
mov ecx, dword [esp + 0x74]
mov ebx, ecx
cmovb ebx, dword [esp + 0x44]
mov eax, dword [esp + 0x20]
cmovb eax, dword [esp + 0x54]
add edi, 8
mov dword [esp + 0x5c], eax
mov eax, edx
sub eax, edi
mov dword [esp + 0x68], edx
add eax, ebx
cmp eax, ecx
cmovb ecx, eax
push ecx
push edi
push edx
call fcn.1054a920
mov esi, eax
add esp, 0xc
lea eax, [esi + edi]
cmp eax, ebx
jne 0x1054e6c8
push dword [esp + 0x74]
mov eax, dword [esp + 0x6c]
push dword [esp + 0x24]
add eax, esi
push eax
call fcn.1054a920
add esp, 0xc
add esi, eax
mov eax, dword [esp + 0x2c]
lea edi, [esi + 8]
sub eax, dword [esp + 0x60]
mov ebx, dword [esp + 0x50]
inc eax
cmp dword [esp + 0x5c], ebx
mov esi, dword [esp + 0x64]
mov edx, dword [esp + 0x34]
sbb ecx, ecx
neg ecx
mov dword [esp + 0x58], eax
cmp edx, esi
sbb eax, eax
neg eax
test eax, ecx
je 0x1054e7fe
nop word [eax + eax]
lea eax, [esi - 1]
mov dword [esp + 0x68], eax
lea ecx, [ebx - 1]
mov al, byte [eax]
mov ebx, ecx
cmp al, byte [ecx]
jne 0x1054e7fe
mov esi, dword [esp + 0x68]
inc edi
cmp dword [esp + 0x5c], ebx
sbb ecx, ecx
neg ecx
cmp edx, esi
sbb eax, eax
neg eax
test eax, ecx
jne 0x1054e700
jmp 0x1054e7fe
mov ecx, dword [esp + 0x58]
lea edx, [esi + 4]
cmp ecx, dword [esp + 0x80]
mov eax, dword [esp + 0x20]
cmovb eax, dword [esp + 0x54]
mov ebx, dword [esp + 0x74]
cmovb ebx, dword [esp + 0x44]
mov edi, dword [esp + 0x5c]
mov ecx, dword [esp + 0x74]
add edi, 4
mov dword [esp + 0x50], eax
mov eax, edx
sub eax, edi
add eax, ebx
cmp eax, ecx
cmovb ecx, eax
push ecx
push edi
push edx
call fcn.1054a920
mov ecx, eax
add esp, 0xc
mov dword [esp + 0x68], ecx
lea eax, [ecx + edi]
cmp eax, ebx
jne 0x1054e7a0
push dword [esp + 0x74]
lea eax, [ecx + 4]
push dword [esp + 0x24]
add eax, esi
push eax
call fcn.1054a920
mov ecx, dword [esp + 0x74]
add esp, 0xc
add ecx, eax
mov eax, dword [esp + 0x2c]
lea edi, [ecx + 4]
mov ebx, dword [esp + 0x58]
sub eax, ebx
mov edx, dword [esp + 0x34]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x5c]
cmp dword [esp + 0x50], eax
sbb ecx, ecx
neg ecx
cmp edx, esi
sbb eax, eax
neg eax
test eax, ecx
je 0x1054e7fe
add ebx, dword [esp + 0x6c]
mov ebp, dword [esp + 0x50]
lea eax, [esi - 1]
mov dword [esp + 0x6c], eax
lea ecx, [ebx - 1]
mov al, byte [eax]
mov ebx, ecx
cmp al, byte [ecx]
jne 0x1054e7fa
mov esi, dword [esp + 0x6c]
inc edi
cmp ebp, ebx
sbb ecx, ecx
neg ecx
cmp edx, esi
sbb eax, eax
neg eax
test eax, ecx
jne 0x1054e7d3
mov ebp, dword [esp + 0x78]
mov eax, dword [esp + 0x18]
lea ebx, [ebp + 0xc]
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x3c], eax
add ecx, 0xffffffe0
mov eax, dword [esp + 0x58]
mov dword [esp + 0x18], eax
mov eax, esi
mov dword [esp + 0x5c], ecx
sub eax, edx
mov ecx, dword [ebx]
mov dword [esp + 0x68], eax
cmp esi, dword [esp + 0x5c]
ja 0x1054e87d
movups xmm0, xmmword [edx]
movups xmmword [ecx], xmm0
cmp eax, 0x10
jbe 0x1054e88c
mov ecx, dword [ebx]
add eax, 0xfffffff0
movups xmm0, xmmword [edx + 0x10]
add ecx, 0x10
lea ebp, [ecx + eax]
mov dword [esp + 0x6c], ebp
mov ebp, dword [esp + 0x78]
movups xmmword [ecx], xmm0
cmp eax, 0x10
jle 0x1054e88c
mov eax, dword [esp + 0x6c]
add ecx, 0x10
add edx, 0x20
movups xmm0, xmmword [edx]
lea edx, [edx + 0x20]
movups xmmword [ecx], xmm0
movups xmm0, xmmword [edx - 0x10]
movups xmmword [ecx + 0x10], xmm0
add ecx, 0x20
cmp ecx, eax
jb 0x1054e860
lea ebx, [ebp + 0xc]
jmp 0x1054e88c
push dword [esp + 0x5c]
push esi
push edx
push ecx
call fcn.1054a9a0
add esp, 0x10
mov ecx, dword [esp + 0x68]
add dword [ebx], ecx
cmp ecx, 0xffff
jbe 0x1054e8ad
mov eax, dword [ebp + 4]
sub eax, dword [ebp]
sar eax, 3
mov dword [ebp + 0x24], 1
mov dword [ebp + 0x28], eax
mov eax, dword [ebp + 4]
mov word [eax + 4], cx
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x58]
add ecx, 3
mov dword [eax], ecx
lea ecx, [edi - 3]
cmp ecx, 0xffff
jbe 0x1054e8de
mov eax, dword [ebp + 4]
sub eax, dword [ebp]
sar eax, 3
mov dword [ebp + 0x24], 2
mov dword [ebp + 0x28], eax
mov eax, dword [ebp + 4]
add esi, edi
mov ebx, esi
mov dword [esp + 0x34], ebx
mov word [eax + 6], cx
add dword [ebp + 4], 8
mov eax, dword [esp + 0x38]
cmp esi, eax
ja 0x1054eca7
mov edi, dword [esp + 0x2c]
mov eax, dword [esp + 0x1c]
add edi, 2
push 0xcf1bbcdc
push 0xb7a56463
push dword [edi + eax + 4]
push dword [edi + eax]
call fcn.10511b50
mov ecx, dword [esp + 0x48]
call fcn.10512520
mov ecx, dword [esp + 0x30]
push 0xcf1bbcdc
push 0xb7a56463
mov dword [ecx + eax*4], edi
push dword [esi + 2]
push dword [esi - 2]
call fcn.10511b50
mov ecx, dword [esp + 0x48]
call fcn.10512520
mov edx, dword [esp + 0x1c]
mov ecx, eax
mov ebp, dword [esp + 0x30]
mov eax, esi
sub eax, edx
mov dword [esp + 0x6c], eax
add eax, 0xfffffffe
mov dword [ebp + ecx*4], eax
mov eax, dword [esp + 0x24]
mov ebp, dword [esp + 0x78]
cmp eax, 4
ja case.0x1054e976.0
jmp dword [eax*4 + 0x1054ed00]
push 0xcf1bbcdc
push 0xbb000000
push dword [edi + edx + 4]
push dword [edi + edx]
call fcn.10511b50
mov ecx, dword [esp + 0x84]
call fcn.10512520
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x28]
mov dword [edx + eax*4], edi
mov eax, dword [esp + 0x24]
jmp switch.0x1054ea6c
push 0xcf1bbcdc
push 0xbf9b0000
push dword [edi + edx + 4]
push dword [edi + edx]
call fcn.10511b50
mov ecx, dword [esp + 0x84]
call fcn.10512520
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x28]
mov dword [edx + eax*4], edi
mov eax, dword [esp + 0x24]
jmp switch.0x1054ea6c
push 0xcf1bbcdc
push 0xbfa56300
push dword [edi + edx + 4]
push dword [edi + edx]
call fcn.10511b50
mov ecx, dword [esp + 0x84]
call fcn.10512520
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x28]
mov dword [edx + eax*4], edi
mov eax, dword [esp + 0x24]
jmp switch.0x1054ea6c
push 0xcf1bbcdc
push 0xb7a56463
push dword [edi + edx + 4]
push dword [edi + edx]
call fcn.10511b50
mov ecx, dword [esp + 0x84]
call fcn.10512520
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x28]
mov dword [edx + eax*4], edi
mov eax, dword [esp + 0x24]
jmp switch.0x1054ea6c
imul eax, dword [edi + edx], 0x9e3779b1
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x14]
shr eax, cl
mov dword [edx + eax*4], edi
mov eax, dword [esp + 0x24]
cmp eax, 4
ja case.0x1054ea6c.0
jmp dword [eax*4 + 0x1054ed14]
push 0xcf1bbcdc
push 0xbb000000
push dword [esi + 3]
push dword [esi - 1]
call fcn.10511b50
mov ecx, dword [esp + 0x84]
call fcn.10512520
mov edx, eax
jmp 0x1054eac5
push 0xcf1bbcdc
push 0xbf9b0000
jmp 0x1054ea7d
push 0xcf1bbcdc
push 0xbfa56300
jmp 0x1054ea7d
push 0xcf1bbcdc
push 0xb7a56463
jmp 0x1054ea7d
imul edx, dword [esi - 1], 0x9e3779b1
shr edx, cl
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x6c]
dec eax
mov dword [ecx + edx*4], eax
mov eax, dword [esp + 0x74]
add eax, 0xffffffe0
mov dword [esp + 0x68], eax
nop dword [eax]
mov edi, dword [esp + 0x1c]
mov eax, esi
mov ecx, dword [esp + 0x3c]
sub eax, edi
mov edx, eax
mov dword [esp + 0x64], eax
sub edx, ecx
cmp edx, dword [esp + 0x80]
jae 0x1054eb01
mov edi, dword [esp + 0x40]
sub eax, dword [esp + 0x10]
add edi, edx
cmp eax, ecx
mov eax, dword [esp + 0x80]
sbb ecx, ecx
sub eax, edx
dec eax
inc ecx
cmp eax, 3
sbb eax, eax
inc eax
test eax, ecx
je 0x1054eca1
mov eax, dword [edi]
cmp eax, dword [esi]
jne 0x1054eca1
cmp edx, dword [esp + 0x80]
lea edx, [esi + 4]
mov ecx, dword [esp + 0x74]
mov eax, edx
mov ebx, ecx
cmovb ebx, dword [esp + 0x44]
add edi, 4
sub eax, edi
add eax, ebx
cmp eax, ecx
cmovb ecx, eax
push ecx
push edi
push edx
call fcn.1054a920
mov ecx, eax
add esp, 0xc
mov dword [esp + 0x6c], ecx
lea eax, [ecx + edi]
cmp eax, ebx
jne 0x1054eb85
push dword [esp + 0x74]
lea eax, [ecx + 4]
push dword [esp + 0x24]
add eax, esi
push eax
call fcn.1054a920
mov ecx, dword [esp + 0x78]
add esp, 0xc
add ecx, eax
mov eax, dword [esp + 0x3c]
lea ebx, [ecx + 4]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x18], eax
mov eax, dword [ebp + 0xc]
cmp esi, ecx
ja 0x1054ebab
movups xmm0, xmmword [esi]
movups xmmword [eax], xmm0
jmp 0x1054ebb7
push ecx
push esi
push esi
push eax
call fcn.1054a9a0
add esp, 0x10
mov eax, dword [ebp + 4]
xor ecx, ecx
mov word [eax + 4], cx
lea ecx, [ebx - 3]
mov eax, dword [ebp + 4]
mov dword [eax], 1
cmp ecx, 0xffff
jbe 0x1054ebe7
mov eax, dword [ebp + 4]
sub eax, dword [ebp]
sar eax, 3
mov dword [ebp + 0x24], 2
mov dword [ebp + 0x28], eax
mov eax, dword [ebp + 4]
mov word [eax + 6], cx
add dword [ebp + 4], 8
mov eax, dword [esp + 0x24]
cmp eax, 4
ja case.0x1054ebfb.0
jmp dword [eax*4 + 0x1054ed28]
push 0xcf1bbcdc
push 0xbb000000
push dword [esi + 4]
push dword [esi]
call fcn.10511b50
mov ecx, dword [esp + 0x84]
call fcn.10512520
jmp 0x1054ec54
push 0xcf1bbcdc
push 0xbf9b0000
jmp 0x1054ec0c
push 0xcf1bbcdc
push 0xbfa56300
jmp 0x1054ec0c
push 0xcf1bbcdc
push 0xb7a56463
jmp 0x1054ec0c
imul eax, dword [esi], 0x9e3779b1
mov ecx, dword [esp + 0x28]
shr eax, cl
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x64]
push 0xcf1bbcdc
push 0xb7a56463
mov dword [ecx + eax*4], edi
push dword [esi + 4]
push dword [esi]
call fcn.10511b50
mov ecx, dword [esp + 0x48]
call fcn.10512520
mov ecx, dword [esp + 0x30]
add esi, ebx
mov ebx, esi
mov dword [esp + 0x34], ebx
mov dword [ecx + eax*4], edi
cmp esi, dword [esp + 0x38]
jbe 0x1054eae0
jmp 0x1054ecbc
mov eax, esi
sub eax, ebx
sar eax, 8
inc eax
add esi, eax
mov eax, dword [esp + 0x38]
cmp esi, eax
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
mov edi, dword [esp + 0x84]
jb 0x1054e1f5
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x7c]
mov ecx, dword [esp + 0x18]
pop edi
pop esi
mov dword [edx + 4], eax
mov eax, dword [esp + 0x6c]
pop ebp
sub eax, ebx
mov dword [edx], ecx
pop ebx
add esp, 0x60
ret